|
发表于 2020-4-25 19:48:41
|
查看: 7782 |
回复: 0
结合题目提示, 猜测有源码泄露, 访问 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 开头的字符串即可绕过
|
温馨提示:
1.如果您喜欢这篇帖子,请给作者点赞评分,点赞会增加帖子的热度,评分会给作者加学币。(评分不会扣掉您的积分,系统每天都会重置您的评分额度)。
2.回复帖子不仅是对作者的认可,还可以获得学币奖励,请尊重他人的劳动成果,拒绝做伸手党!
3.发广告、灌水回复等违规行为一经发现直接禁言,如果本帖内容涉嫌违规,请点击论坛底部的举报反馈按钮,也可以在【 投诉建议】板块发帖举报。
|