BugKu-WEB-备份是个好习惯
BugKu-WEB-备份是个好习惯
题目


思路
可以看到网页就只有一串编码,用ciphey和赛博大厨解码啥都没发现,f12看什么也没有,看到题目想到寻找备份文件,直接猜一波.bak后缀文件,使用dirsearch命令搜索服务器的文件
1 | dirsearch -u http://117.72.52.127:12255/ |

在等待的时候可以自己试试,比如说index.php.bak,flag.php.bak等等(我第一次还真就直接猜出了index.php.bak)
可以看到自动下载了index.php.bak,用mousepad打开发现是一串php代码,直接开始代码审计

1 |
|
可以先去看一下相关的文档
可以看到这个php使用include_once引用了一次flag.php,这个时候我们先去去看看flag.php,发现什么都没有,再继续分析
第二行是使用ini_set()是消除报错,防止泄露信息
第三行是使用strstr()查找’?’第一次出现的位置,截取以’?’之后的值,然后把值赋str
第四行是使用substr()去掉第一位也就是’?’
第五行是使用str_replace把关键词key换成空字符
第六行是使用parse_str把查询到的值换成变量
接下来就是比较key1和key2的值,如果key1的转换成md5的值弱等于key2转换成md5的值,并且key1不等于key2,获得flag
此时又是一个矛盾问题,但关键还在于弱比较
查询资料可知,php在弱比较的时候,会将0exxxx当成科学计数法来比较,也就是0的n次方,为0,此时只要传入两个以0e开头的md5就可以绕过限制了,由于md5加密是不可逆的,所以只能查询资料找到0e开头的md5,再考虑之前将key值换成空字符,可以穿入以下数据
1 | http://117.72.52.127:12255/?kkeyey1=QNKCDZO&kkeyey2=s878926199a |
数据进入程序中,先删去key值,变成key1=QNKCDZO和key2=s878926199a,再把他们变成变量去进行若比较,最后得到flag

Flag
1 | flag{1b4c5c66fc03525b4b9e49fb85dd46ce} |
- 标题: BugKu-WEB-备份是个好习惯
- 作者: Mel0ny
- 创建于 : 2025-08-29 14:47:06
- 更新于 : 2025-08-29 21:26:56
- 链接: https://mel0nyrame.github.io/2025/08/29/BugKu-WEB-备份是个好习惯/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论