Buuctf-web-[HCTF 2018]WarmUp

首先打开是一张表情图片,然后直接查看源码。发现。

 

 有个source.php 的注释,而源码里没有什么可寻的信息,直接查看source.php

 

 发现是一个程序。提示我们另一个地址hint.php,

 

提示我们在ffffllllaaaagggg

 

 

 

request函数包含了get和post方法,$_REQUEST是需要通过POST或者GET参数来赋值的,接收参数,file.

 

 

 

 

 然后if里的第一个判断是判断它接受的是否为空,第二个是判断是否为字符串,第三个将它传给函数check File。都满足后传给函数checkFile.否则打印图片。

 

然后看checkFile函数。

 

1,首先将传入的参数赋给page。

2,然后声明了一个数组

$whitelist值源自source.php 和hint.php

3,如果page变量不存在或者非字符串,返回false

4,如果变量page存在于whitelist中返回true

5,mb_substr() 函数返回字符串的一部分,

mb_strpos():返回要查找的字符串在别一个字符串中首次出现的位置 

$_page里存放了函数mb_substr 截取$page中'?'前部分,若无则截取整个$page

然后再判断变量page存在于whitelist中返回true

6,然后url解码了一次page

 然后因为网页给page解码了一次,函数中也解码了一次,所以?要url编码两次,为%253F

 

所以直接给file赋值view-source:http://e9cdbb91-074c-488d-8ae9-91cf504329d2.node3.buuoj.cn/source.php?file=source.php%253F../../../../../../../../ffffllllaaaagggg

因为不知道flag路径,所以多次尝试

 

posted @ 2020-09-16 18:36  夜布多  阅读(330)  评论(0编辑  收藏  举报