[Toddler's Bottle]-collision
来源:互联网 发布:java中调用webservice 编辑:程序博客网 时间:2024/06/03 13:43
有了第一个就会有之后的很多很多个吧
ssh col@pwnable.kr -p2222 (pw:guest)之后,发现跟上一个题的套路差不太多
看到了三个文件col,col.c和flag,flag没法直接打开,需要去看程序
cat col.c查看源码:发现有一个套路差不多:argc<2的判断在第一题已经会了
另外,有了一个strlen的限制,长度必须是20位
想要拿到flag,就必须懂check_password这个函数
于是就拿着运行跑一次
./col ABCDEFGHIJKLMNOPQRST
说好的是20个不然退出了
按ASCII码的顺序写入是为了便于判断
看到了wrong passcode,说明分析得正确
于是,把源码复制出来
在check_password()函数中,把所有的中间变量值输出
同样的输入可以看到:
1145258561……
看到这个很明显是10进制数,转成16进制会有惊人发现:hex(1145258561)=0x44434241
就是ASCII码哦!
那么可以看到:现在的问题就是把20个字符分成五组每个四个字符
使得A1B1C1D1+A2B2C2D2+A3B3C3D3+A4B4C4D4=hashcode=0x21DD09EC
所以这个题肯定是多解的,从算法的角度来说找一组就可以
先算末尾,0xEC=236要分成5份就不可显示了,所以要用0x1EC=492
492=5*98+2=3*98+2*99,所以呢,知道了写3个b和2个c
注意,0x1EC借走1位,所以下一组用这种方法计算应该得到的是0x08,同理不够分,再往上借
到了0x21呢,可以无数次借不用还,因为最高位自动溢出了不用管
注意!计算完了之后,需要看填写的顺序。
我们在输入ABCD的时候,显示的是0x44434241
有个分组和逆序的关系
提供一组可以看到flag的解:bhambhambhamchamchWl
想得到flag的话,自己去算一组其他的解吧
cat col.c查看源码:发现有一个套路差不多:argc<2的判断在第一题已经会了
另外,有了一个strlen的限制,长度必须是20位
想要拿到flag,就必须懂check_password这个函数
于是就拿着运行跑一次
./col ABCDEFGHIJKLMNOPQRST
说好的是20个不然退出了
按ASCII码的顺序写入是为了便于判断
看到了wrong passcode,说明分析得正确
于是,把源码复制出来
在check_password()函数中,把所有的中间变量值输出
同样的输入可以看到:
1145258561……
看到这个很明显是10进制数,转成16进制会有惊人发现:hex(1145258561)=0x44434241
就是ASCII码哦!
那么可以看到:现在的问题就是把20个字符分成五组每个四个字符
使得A1B1C1D1+A2B2C2D2+A3B3C3D3+A4B4C4D4=hashcode=0x21DD09EC
所以这个题肯定是多解的,从算法的角度来说找一组就可以
先算末尾,0xEC=236要分成5份就不可显示了,所以要用0x1EC=492
492=5*98+2=3*98+2*99,所以呢,知道了写3个b和2个c
注意,0x1EC借走1位,所以下一组用这种方法计算应该得到的是0x08,同理不够分,再往上借
到了0x21呢,可以无数次借不用还,因为最高位自动溢出了不用管
注意!计算完了之后,需要看填写的顺序。
我们在输入ABCD的时候,显示的是0x44434241
有个分组和逆序的关系
提供一组可以看到flag的解:bhambhambhamchamchWl
想得到flag的话,自己去算一组其他的解吧
0 0
- [Toddler's Bottle]collision
- [Toddler's Bottle]-collision
- [Toddler's Bottle]fd
- [Toddler's Bottle]-[fd]
- [Toddler's Bottle]bof
- [Toddler's Bottle]flag
- [Toddler's Bottle]-[bof]
- [Toddler's Bottle]-[flag]
- [Toddler's Bottle]-[leg]
- pwnable.kr [Toddler's Bottle]
- pwnable.kr [Toddler's Bottle]
- pwnable.kr [Toddler's Bottle]
- pwnable.kr [Toddler's Bottle]
- pwnable.kr [Toddler's Bottle]
- pwnable.kr [Toddler's Bottle]
- pwnable.kr [Toddler's Bottle]
- pwnable.kr [Toddler's Bottle]
- pwnable.kr [Toddler's Bottle]
- 如何查一个字段在数据库的哪些表上
- stm32程序下载方式总结
- Linux内核分析(心得篇)
- hadoop1.x下的NameNode与SecondaryNameNode
- Blob分析
- [Toddler's Bottle]-collision
- Quartz定时器
- easyui-textbox添加validType使maxlength失效
- 学习大数据第二天:数据挖掘的基础方法——最小二乘法
- 写出执行双旋转的函数,其效率要超过执行两个单旋转
- 普通函数,虚函数,纯虚函数
- follow 开源项目关于NoClassDefFoundError错误的解决方法
- 使用boost库生成 随机数 随机字符串
- Cocos2dx: 使用ClippingNode的节点裁剪