【题目描述】
Pwn! Segment fault!菜鸡陷入了深思
【附件】
在线场景和文件
【过程及思路】
放到linux下,checksec一下,检查程序位数。
发现是64位的程序。
放进IDA,找到main函数,F5反编译得到下图。
第7行,程序读取从起始位置开始的10个长度,也就是说我们有10个长度的写入权限。
第8行,判断指定位置是否是某个值。
第9行,函数的功能是cat flag.txt,我们从这个条件入手,构造出程序要求的值。
进到值条件判断的位置,发现判断目标位置离程序read的位置偏离4个长度。因此构造一个字符串,先把前面不进行判断的4个位置填充了(用字符,这里用的是“ABCD”),再在目标位置填上目标值。前面知道程序是64位的,因此这里用p64。
脚本如下:
【答案】
cyberpeace{97d4c624fe1751a4c98e3aeaa9740a81}
如果文章对你有帮助,就动动手指点赞、喜欢、支持一下咖啡猫吧,谢谢!