命令执行漏洞
常见攻击流程
- 前期准备
- 下载程序源码并部署测试环境
- 代码审计
- 结合手工和工具对程序源代码进行白盒审计
- 利用常见黑盒技术手段对当前环境进行检测
- 攻击利用
- 针对第二阶段发现的问题进行分析及利用
命令执行漏洞定义
命令执行漏洞,就是指用户通过浏览器或其他辅助程序提交执行命令,由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令。
通俗地讲:当应用需要调用一些外部程序去处理内容的情况下,就会用一些执行系统命令的函数。如php中的system、exec、shell_exec等,当用户可以控制命令执行函数中的参数时,将可以注入恶意系统命令到正常的命令中,造成命令执行攻击。
命令执行漏洞原理
命令执行漏洞之所以会产生,原因就是由于开发人员编写源码,没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句提交,并交由服务器端执行。
命令注入攻击中WEB服务器没有过滤类似system(),eval(),exec()等函数是该漏洞攻击成功的最主要原因。
命令执行漏洞常见分类
- 代码层:
一些商业应用需要执行命令,商业应用的一些核心代码可能封装在二进制文件中,在web应用中通过system函数来调用; - 系统层:
(bash破壳漏洞)如果我们能够控制执行的bash的环境变量,就可以通过破壳漏洞来执行任意代码; - 第三方组件层:
很典型的就是WordPress中,可以选择使用ImageMagick这个常用的图片处理组件,对用户上传的图片进行处理,造成命令执行,另外JAVA中的命令执行漏洞(struts2/Elasticsearch等)
命令执行漏洞危害
命令执行漏铜
- 任意执行系统命令
- 恶意木马被种植
- 挂马、钓鱼
- 敏感信息泄露
- ……
Author: 云亦然
Link: http://JaneBraun.github.io/2019/08/15/网络安全之命令逻辑漏洞/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.