查看: 220|回复: 0

[Web] xuenixiang_2020_web_web50

[复制链接]
发表于 2020-4-25 19:48:41 | 显示全部楼层 |阅读模式
结合题目提示, 猜测有源码泄露, 访问 index.php.bak 直接把源码下载下来进行审计. 下面是部分关键代码
<?php
$str = strstr($_SERVER['REQUEST_URI'], '?');
$str = substr($str,1);
$str = str_replace('key','',$str);
parse_str($str);
echo md5($key1);
echo $key1;
echo md5($key2);
if(md5($key1) == md5($key2) && $key1 !== $key2){
    echo $flag."取得flag";
}
?>
第二行获取了 url 问号后的全部字符串, 比如传入的是 localhost:/index.php?key=sheldon, 得到的结果是 $str="?key=sheldon".
第三行去除掉问号, 第四行把'key'替换成空, parse_str() 函数把查询字符串解析到变量中。
当你传入? key1=a&key2=b 的时候 经过过滤会变成 1=a&2=b 此时可以采用双写绕过, 传入? kekeyy1=a&?keleyy2=b, 经过过滤后会得到 key1=a&key2=b.
下面的比较 md5 比较函数就是典型的 php 弱类型绕过, 输入两个 md5 值为 0e 开头的字符串即可绕过
payload:[url=http://120.24.86.145:8002/web16/index.php?kekeyy1=s878926199a&kekeyy2=s155964671a]http://120.24.86.145:8002/web16/index.php?kekeyy1=s878926199a&kekeyy2=s155964671a[/url]

flag:动态flag,别懒···


温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的最好奖励,还可以获得学币奖励,请尊重作者的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【投诉建议】板块发帖举报。
论坛交流群:672619046
微信公众号
快速回复 返回顶部 返回列表