博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pwnable.kr-collision
阅读量:4617 次
发布时间:2019-06-09

本文共 623 字,大约阅读时间需要 2 分钟。

题目:

813894-20160512224838030-1105882683.png

链接后登陆

ssh col@pwnable.kr -p2222
813894-20160512224852468-162875472.png

查看文件以及权限

Ls –al
813894-20160512224909515-1536098166.png

查看代码

cat col.c
813894-20160512224918155-114723170.png

根据

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,嗯,就这样。
输入:
./col python -c "print '\x01' * 16 + '\xE8\x05\xD9\x1D'"
813894-20160512224953937-154019272.png

转载于:https://www.cnblogs.com/spd2016/p/5487718.html

你可能感兴趣的文章
C语言中的地址传递(传指针,传递给形参的指针仍然是实参指针的一份拷贝)
查看>>
redis缓存数据库及Python操作redis
查看>>
opencms忘记Admin用户登录密码解决方案
查看>>
forms组件
查看>>
create-react-app 配置sass
查看>>
02_关系数据库
查看>>
在win7电脑中如何查看运行进程的PID标识符
查看>>
[Vue] vue-cli3.0安装
查看>>
shell中如何进行算术运算
查看>>
为什么所有的架构都是糟糕的
查看>>
奥森图标和CSS特殊字体使用方法
查看>>
转载 https协议和http协议的区别
查看>>
Google Analytics添加到网站
查看>>
PageControl的小点点随ScrollView滑动而变动代码
查看>>
(十三)在ASP.NET CORE中使用Options
查看>>
关于博主
查看>>
【2014年2、3月份日常记录表(2014.2.24—3.31,36天)】
查看>>
Dreamweaver中的插件如何应用
查看>>
iTerm2中粘贴tab问题
查看>>
SPFA算法 - Bellman-ford算法的进一步优化
查看>>