210115CTF练习记录
RT
[BJDCTF2020]Easy MD5
一开始查看,第一感觉有可能是弱密码碰撞。(但是后来也觉得不会那么傻逼吧,也木有密码长度的提示)尝试点击一下提交。抓取得到下面的隐藏信息
1 | select * from 'admin' where password=md5($pass,true) |
大概率是密码绕过,(根据wp)这时候有一个有一个密码ffifdyop
MD5之后结果是276f722736c95d99e921722cf9ed621c
,而这个字符串前几位刚好是’ or ‘6, Mysql 刚好又会把 hex 转成 ascii 解释。
1 |
|
查看源代码是这个结果,常规的弱类型比较。
使用常用的弱类型比较
QNKCDZO
MD5:0e830400451993494058024219903391
s878926199a
MD5:0e545993274517709034328855841020
1 |
|
md5强比较,此时如果传入的两个参数不是字符串,而是数组,md5()函数无法解出其数值,而且不会报错,就会得到===强比较的值相等。构造payload
1 | param1[]=111¶m2[]=222 |
得到flag。。
[极客大挑战 2019]BuyFlag
1 | Flag need your 100000000 money |
有点像遇到过修改post数据包的考点,仔细看一下下面还有提示
1 | If you want to buy the FLAG: |
三个条件
- 用户身份
- password
- money
一眼过去觉得最容易解决的就是money了,按照他的来就好。
然后关于password去看了一些源码
1 | <!-- |
基本上就是弱类型比较
接着的话就是用户身份(我查了一下wp才了解)
一直有定式思维用user-agent,这一次改的是cookie。
把user=0
改成user=1
即可。
中途还提示了money参数过长,这时候转换成科学计数法。
,构造payload。
得到flag。