命令执行漏洞及其绕过

admin 2022年2月21日14:30:41评论69 views字数 1047阅读3分29秒阅读模式
1 命令执行漏洞
    命令执行直接调用操作系统命令。其原理是,在操作系统中,“&、|、||”都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,将用户的输入作为系统命令的参数拼接到命令行中,在没有过滤用户输入的情况下,造成命令执行漏洞。
漏洞常存在于:
    1、使用用户提供的邮箱地址发送邮件的应用程序
    2、服务器监控类型的应用,他们会返回系统的健康状况,这些健康状况都是通过执行系统命令取得的
    3、使用第三方软件根据用户提供的输入实时生成报告的应用程序

2 常见的管道符

2.1 Windows支持的管道符

(1)| 直接执行后面的语句
命令执行漏洞及其绕过
(2)||  如果前面的命令是错的那么就执行后面的语句,否则只执行前面的语句
命令执行漏洞及其绕过
命令执行漏洞及其绕过
(3)& 前面和后面命令都要执行
命令执行漏洞及其绕过
命令执行漏洞及其绕过
(4)&& 如果前面为假,后面的命令也不执行,如果前面为真则执行两条命令
命令执行漏洞及其绕过
命令执行漏洞及其绕过

2.2 Linux系统支持的管道符

    |、||、&、&&这四种管道符都存在且用法和Windows系统下一样,多了一个;管道符,作用和&一样

3 空格过滤

  • ${IFS}

命令执行漏洞及其绕过
  • $IFS$1

命令执行漏洞及其绕过
  • <>、<

命令执行漏洞及其绕过
  • %09(需要php环境)


4 黑名单绕过

如果过滤了cat或者flag
  • 变量拼接

a=c;b=at;c=fl;d=ag;$a$b $c$d
命令执行漏洞及其绕过
  • Base编码

`echo "Y2F0IGZsYWc="|base64 -d`
Y2F0IGZsYWc=  base64解吗为 cat flag
命令执行漏洞及其绕过
  • 单引号、双引号

命令执行漏洞及其绕过
  • 反斜线

命令执行漏洞及其绕过
  • $1、$2等和$@

命令执行漏洞及其绕过
  • 内联执行绕过

``内的输出会作为前面命令的输入
命令执行漏洞及其绕过
  • 读文件绕过(cat被过滤时)

基础知识:
(1)more:一页一页的显示档案内容(2)less:与 more 类似,但是比 more 更好的是,他可以[pg dn][pg up]翻页(3)head:查看头几行(4)tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示(5)tail:查看尾几行(6)nl:显示的时候,顺便输出行号(7)od:以二进制的方式读取档案内容(8)vi:一种编辑器,这个也可以查看(9)vim:一种编辑器,这个也可以查看(10)sort:可以查看(11)uniq:可以查看(12)file -f:报错出具体内容
命令执行漏洞及其绕过
  • 通配符绕过

?代表一个字符*代表一串字符
命令执行漏洞及其绕过
  • 命令换行

命令执行漏洞及其绕过
把命令写入文件,然后使用sh执行该文件
命令执行漏洞及其绕过

5 命令无回显

利用dnslog

命令执行漏洞及其绕过
命令执行漏洞及其绕过

6 参考文章
https://blog.csdn.net/qq_45836474/article/details/107248010

原文始发于微信公众号(Reset安全):命令执行漏洞及其绕过

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月21日14:30:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   命令执行漏洞及其绕过https://cn-sec.com/archives/795179.html

发表评论

匿名网友 填写信息