我们在之前的机器中,通常就是利用一段程序中代码段下已有的指令来实现我们得到flag或者拿下shell的目的。但是抛出了一个问题,如果程序中没有危险语句,就无从下手。
所以,此次我们引出了一个概念,动态链接库libc。这也解决了我一直以来的问题,为什么call的函数点进去只能看到return,因为声明的函数并不在代码的cs段内,而是应用了随机化存储,存在内存的其他地方了。
之后通过某些方法调用,这个某些方法这事以后的事情了。闲话少叙,我们开始今天的日行一pwn。
开始
例行检查,开启了代码段不可执行和设置got和plt表为只读。
并且题里给出了编译软件所使用的库文件。
https://github.com/196011564/CTFQuestion/raw/master/OPPO_OGEEK/pwn/babyrop/libc-2.23.so
代码分析
main函数