攻防世界Web进阶篇——warmup

打开链接,发现是一张滑稽

查看页面源代码,发现文件

 

 于是打开source.php,发现

 

 打开hint.php,根据提示得知flag在ffffllllaaaagggg文件中

回到source.php,检查代码

在结尾看到include,include是可以动态构造参数,但是要经过三个判断

 

 1.是否为空

2.是否为字符串

3.checkfile函数返回为真

检查checkfile函数,如果输入内容为空或不是字符串,则返回错误

 

 对输入内容进行判断,第一部分 如果输入内容和白名单中的一致,则返回true

 

第二部分 如果问号前有白名单的内容,则返回true

 

 第三部分 如果输入内容url解码后,问号前有白名单的内容,则返回true

 

 要满足第二个条件:

 $_REQUEST 是通过 GET,POST 和 COOKIE 输入机制来传递参数,下面用的是get方式

http://111.200.241.244:51343/source.php?file=source.php?+payload

http://111.200.241.244:51343/hint.php?file=hint.php?+payload

第一个?用于传参,第二个用于截取,file伪协议用于访问本地文件系统

要满足第三个条件就将第二个?url编码两次

接下来构造payload,可以利用include函数的性质,如果一个文件以../开头,那么include就会在当前目录的父目录下寻找文件,所以只需构造../../../../../ffffllllaaaagggg,其中../的个数可以一个一个试

合起来就是http://111.200.241.244:51343/source.php?file=source.php?../../../../../ffffllllaaaagggg

参考文章:https://blog.csdn.net/yybzzz/article/details/104971608

https://blog.csdn.net/qq_42016346/article/details/104199710?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.base

 

posted @ 2021-08-21 19:36  小兔巴尼  阅读(153)  评论(0编辑  收藏  举报