题目:
链接后登陆
ssh col@pwnable.kr -p2222查看文件以及权限
Ls –al查看代码
cat col.c根据
if(strlen(argv[1]) != 20){ printf("passcode length should be 20 bytes\n"); return 0; } 得输入的长度为20 根据 if(hashcode == check_password( argv[1] )){ system("/bin/cat flag"); return 0; } 得check_password[argv[1]] == hashcode, 即check_password[argv[1]] == 0x21DD09EC, 而check_password的作用就是将输入的数据用整型转换,求和返回。 对20个字节,要构造输入的整型转换后的5个整数求和 == 0x21DD09EC,第一个想法是:前16个字节赋\x00,最后4个字节为0xEC09DD21,但是\x09是HTab,输入会被阻断。 第二个想法:前16个字节赋\x01,最后4个字节为\xE8\x05\xD9\x1D,嗯,就这样。 输入: ./colpython -c "print '\x01' * 16 + '\xE8\x05\xD9\x1D'"