zoukankan      html  css  js  c++  java
  • 《从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的过滤。

  • 相关阅读:
    spring FactoryBean配置Bean
    注意使用 BTREE 复合索引各字段的 ASC/DESC 以优化 order by 查询效率
    Mysql经常使用基本命令汇总及默认账户权限与改动
    图像边缘检測--OpenCV之cvCanny函数
    HDU 1556 Color the ball 树状数组 题解
    JMeter使用记录2 -- Web測试
    C++编程
    矩阵树定理速证
    DM816x算法具体解释--之OSD
    哥尼斯堡的“七桥问题”(25分)(欧拉回路,并查集)
  • 原文地址:https://www.cnblogs.com/viphhs/p/15458025.html
Copyright © 2011-2022 走看看