pwnable.kr之lotto


lotto

IDA看一下程序的流程

看一下流程,这里是进行了两个循环,Buf是从/dev/urandom中读入的6个字节,submit是我们输入的字符串。循环的意思就是让我们输入的6个字符恰好和系统生成的6个随机字符相等(顺序可以不同),可是,题目中也说了,这太难了。后面看到,这里只要让v4=6就可以了。这就是这道题的脆弱点,那么,例如这样:

buf中是abcdef

而我们输入的时ffffff

同样可以让v4=6

 

根据题目给的意思,是从/dev/urandom中读取6个字节,这个文件是Linux下根据系统熵产生的随机数,我输出了一部分看了一下,很少看到有控制字符。


而ascii中0-31(127)是控制字符,其余都是可见字符,再结合题目中说,给出6个小于46的数字,因此把范围缩小到:


没什么好办法,就只能一个一个试一试了。

从45开始


然而两次就出来了~~,在本机测试测了好几个出来….

flag:sorry mom… I FORGOT to check duplicatenumbers… :(

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值