Pwn50
|
|
用了gets,有明显的溢出。题目中有提供了system函数执行。exp如下:
既然可以溢出,也可以用rop来做。exp如下:
然后我进去后找了好久的flag。以为那个pwn50是文件,结果最后发现是它是个文件夹mdzz。以后找flag可以用命令来帮忙:
最后的flag:
Pwn100
|
|
pwn150
用IDA调试后可以看到用fgets读入了192个字节,但起始位置距离rbp只有50个字节,存在溢出,而且程序没有开canary保护。溢出的offset推测为 0x50+8 = 88。
用gdb调试确定为88的偏移。由于程序中会fork出新进程,为调试方便可以在gdb调试开始时先输入set follow-fork-mode parent
,然后在对应的地方下断点进行调试。
|
|
最后的flag: