菜鸡的初始学习:
首先,进入靶场
右键查看源码
打开source.php
补充知识PHPmyadmin任意文件包含
首先,白名单(whilelist)里面有一个叫hint.php的东西,访问一下,得到一个
这块相当于C语言里面的main函数,上面部分的内容相当于定义了一个函数,那个函数在main函数里面被调用,先看看main函数长啥样。首先上传一个file,file必须满足三个条件才能继续执行下去:
1.file必须不为空
2.file必须是字符串
3.file在执行emmm::checkFile函数后返回值必须为True。
然后返回去看看emmm函数是干吗用的。
1.file必须不为空
2.file必须是字符串
3.file在执行emmm::checkFile函数后返回值必须为True。
然后返回去看看emmm函数是干吗用的。
接下来开始构造url:
1.根据白名单,那么肯定要构造 ?source.php
2.因为$page的问号前面的东西必须在白名单里面,白名单只包括source.php,所以source.php后面必须跟一个问号。但是如果传参的内容有问号的话不符合传参的格式,然后就会报错,那选择url编码一下。然后,因为url在上传到服务器的时候会自动解码一次,所以这里需要二重编码:? => %3F => %25%33%46 ,所以前面部分就是 ?source.php%25%33%46
3.接下来,只要利用../回到服务器的根目录下,找到flag就行,经过测试,需要5个../,但是多打几个其实也可以,然后就是 source.php?file=source.php%25%33%46../../../../../ffffllllaaaagggg
得到falg:
另外可以使用第二种方式
构造目录
/?file=hint.php%253F../../../../../ffffllllaaaagggg
得到
原链接:https://www.jianshu.com/p/42011eb79f8b