BUUCTF-WARMUP WP
-
打开之后,首先看到是一个笑脸,查看源代码后发现一个source.php
-
访问它
-
highlight_file(__FILE__)和show_source(__FILE__)两个函数都一样,都是显示出文件的源代码。接下来,细细分析一下
-
先看一下hint.php文件
-
可以猜测,flag在ffffllllaaaagggg这个文件或文件夹里面
-
再看最下面的if
-
三个条件分别是
- ?file=后面的数据不能为空或者数据的值不等于False
- ?file=后面的数据必须全是字符串
- 一个函数检测这个值
都符合条件后会包含这个文件,并退出此脚本
-
然后我们来看这个函数checkFile($_REQUEST['file'])
注:$_REQUEST即可以用get在url中传数据,也可以在post请求头头里面传数据 这里在url中传数据
-
这两个if表示我们可以访问source.php和hint.php文件
-
这些表示可以截取?之前的字符串,比如:?file=adc.php?file=ccm.php ( 我乱写的 ),
$_page=abc.php 后面的内容会被过滤,如果这个字符串在$whitelist里面就会然会true
-
进行url解码之后在进行重复上边的内容
-
好了,代码已经审计完了
-
构造payload,综上,就是构造的payload里面必须有source.php?或者hint.php?
-
我们不知道在哪个文件夹里面,只能一个一个地往上级走,最终发现,在根目录里面,所以就算多加一个../也没关系
-
最终
?file=source.php?../../../../../../ffffllllaaaagggg