《从0到1:CTFer成长之路》ctf 学习笔记

文件包含

[第一章 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的过滤。

 

posted @ 2021-10-25 13:08  viphhs  阅读(797)  评论(0编辑  收藏  举报