-
-
[求助] 关于sploitfun的第四篇心得和一些求助
-
-
[求助] 关于sploitfun的第四篇心得和一些求助
-----》 3月12日结贴
感谢大佬的解答@keoyo
-----》 3月10编辑
我跟踪了strcpy函数
ret = pop eip;
而我的字符串在 0xffffcc90 以后的地址中 ,无论多长也不会覆盖到这个返回地址。
但是问题又出现了,按照栈结构
..
var ..
ret ..
par ..
..
按理来说返回地址(ret)在变量(var)后面,会被我的字符串(var)覆盖掉啊,为什么strcpy中,返回地址在var前了呢??????
_________________________________________________________________________________________________________________________-
本人小白,最近接触了这系列文章
3e6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6K6M7r3I4G2K9i4c8X3N6h3&6Q4x3X3g2%4L8%4u0V1M7s2u0W2M7%4y4Q4x3X3g2U0L8$3#2Q4x3V1j5J5x3o6p5#2i4K6u0r3x3o6g2Q4x3V1j5H3z5q4)9J5c8X3u0&6M7r3q4K6M7$3W2F1k6#2)9J5k6r3&6^5i4K6u0V1j5X3W2@1i4K6u0V1N6i4y4A6L8X3N6Q4x3X3c8J5k6i4c8#2M7X3&6Q4x3X3c8@1L8#2)9J5k6r3I4A6j5X3y4Q4x3V1j5`.也在论坛中发现了它的汉化贴 https://bbs.pediy.com/thread-217390.html
写一些自己的心得和收获,首先是原文语法错误问题
conv函数是个小端转换函数,我这显示的是这样。
应该修改为return struct.pack("I",num)
在我的64bit ubuntu上编译它原文程序
echo 0 > /proc/sys/kernel/randomize_va_space
关aslr
gcc -m32 -g -fno-stack-protector -o nx nx.c
编译过程
原文没有给出它gdb程序的截图,可能我环境和他不同,反汇编出来的也不同。
按照原文的exploit是失败的
我跟踪了字符串,发现它在执行完main函数时候会跳转到的payload上。
从main+81 到结束,这段代码很奇妙,它读了我的payload,在我的payload中找字符串然后修改程序的ebp,然后从栈上pop eip
为此我针对我的环境构造了ebp,来满足它的跳转,放exploit
在gdb成功exploit了,但是在shell里面却依旧报错,查了查是环境变量不同,放到栈上以后,环境变量所占栈长度不同导致的exploit失败
找到一个工具,github上的 fixenv/r.sh
利用这个工具重新构造payload成功exploit了。。。。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2018-3-12 10:02
被xxxlion编辑
,原因: