ROPgadget

Author Avatar
Aryb1n 5月 10, 2017

看到网上推荐的rop工具,就down了一份ROPgadget

haibin$: ROPgadget --binary /lib/x86_64-linux-gnu/libc.so.6 --only "pop|ret" | grep rdi

看蒸米的文章里有

payload = "\x00"*136 + p64(pop_ret_addr) + p64(binsh_addr) + p64(system_addr)

开始没看懂这个payload,还是太菜

p64(pop_ret_addr)覆写了ret_address, 所以在ret的时候先跳到一个pop rdi; ret的地方
这个时候栈顶应该已经是p64(binsh_addr) + p64(system_addr) 这部分内容了
所以这个时候pop rdi就把p64(binsh_addr)pop到了$rdi里作为第一个参数
然后ret跳到p64(system_addr),然后起来shell?好像很完美的样子….