https://buuoj.cn/---web--WarmUp

菜鸡的初始学习:

首先,进入靶场


右键查看源码

source.php

打开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:

另外可以使用第二种方式


得到hint.php

构造目录

/?file=hint.php%253F../../../../../ffffllllaaaagggg

得到


原链接:https://www.jianshu.com/p/42011eb79f8b

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。