babyROP--ret2libc

记录一下构造ROP链的思路

ctf_wiki_basic-rop

ret2libc1 文件下载

 

 

填充padding到ebp,返回到plt表中system地址,exit()为padding,’/bin/sh‘为system函数参数

‘system_addr:gdb中的plt表

b'/bin/sh':ROPgadget 中对string搜索 OR IDA shift+f12 

exit():填充4字节即可

ret2libc2 文件下载

 

 

 相比ret2libc1这道题没有‘/bin/sh’字符,所以调用gets函数读入‘/bin/sh’字符

buf_addr的选取:gdb中vmmap,.rodata数据中有写权限,用x/40wx $addr 查看到内存中内容为0(若写入到内存中有意义的地方可能导致出错)

 

 

 

 

 若要连续执行多个函数(两个以上),需要以此种方式构建ROP链

ret2libc3 下载

 相比2,没有直接的system系统调用。这里需要泄露libc地址,以此来得到system地址

 

posted @ 2021-04-19 21:29  cynault  阅读(122)  评论(0)    收藏  举报