pwnable.kr collision Write Up

首先通过SSH连接服务器,然后ls查看一下当前目录:

查看col.c文件,代码如下:


要求输入20个字符,然后因为一个char占用1个字节,一个int占用1个字节,因此在check_password函数中,将会把输入的20个char四个一组转换为int,转换规则如下:

比如有四个字符1002,那么内存中为\0x31\0x30\0x30\0x32这样排列,将它转换为int的时候,由于是小端存储,将会把这四个数从小端开始填充,形成int=0x32303031。

由于题目里边要求输入的数转换后要和0x21DD09EC相等,因此直接将这个数除以5,可知0x21DD09EC=4*0x06C5CEC8+0x06C5CECC,但是这个时候表示的字符超出ASCII码范围,我在看了题解后得知可以使用python和xargs命令结合作为从参数输送给col,从而拿到flag:


猜你喜欢

转载自blog.csdn.net/wannafly1995/article/details/80858412
今日推荐