BugKu-WEB-矛盾

BugKu-WEB-矛盾

Mel0ny Lv5

BugKu-WEB-矛盾

题目

Question
Question

思路

很明显这是一个代码审计的题目

1
2
3
4
5
6
7
$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}

通过题目可知这题应该考的是php弱判断的漏洞,不过要先知道服务器的php版本,使用whatweb可以查看

1
whatweb 117.72.52.127:15078

Question

可以看到是低版本,这就意味着可以利用一些低版本的php弱比较的漏洞,可以去官网文档查看

Question

先分析代码,先是定义了num为GET方法得到的输入,然后又执行了一个if语句,is_numeric()方法判断输入是不是数字,!is_numeric()表示非数字,但是下面又有一个if语句,如果num是1的话就输出flag,前后就矛盾了
此时我们可以翻看官网文档,查看有没有办法让num不是数字,但又可以num判定等于1的
可以看见,如果num是个字符串且包含1的话,php就会把字符串转换成1

Question

传入参数?num=1a, php从左往右读,读到1之后发现后面的不是数字就不读了,此时就可以满足看似矛盾的条件了

Question

Flag

1
flag{21ca78b8239ca7282de29084f518c051} 
  • 标题: BugKu-WEB-矛盾
  • 作者: Mel0ny
  • 创建于 : 2025-08-29 14:10:37
  • 更新于 : 2025-08-29 21:30:12
  • 链接: https://mel0nyrame.github.io/2025/08/29/BugKu-WEB-矛盾/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
BugKu-WEB-矛盾