02命令执行代码注入漏洞.pptx
《02命令执行代码注入漏洞.pptx》由会员分享,可在线阅读,更多相关《02命令执行代码注入漏洞.pptx(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、命令执行命令执行/代码注入漏洞代码注入漏洞王朋涛王朋涛深信服北京安全团队深信服北京安全团队1.命令执行/代码注入漏洞概述2.命令执行/代码注入漏洞分类介绍3.命令执行/代码注入漏洞挖掘方法4.命令执行/代码注入漏洞攻击防御5.总结培训提纲培训提纲命令执行命令执行/代码注入漏洞概述代码注入漏洞概述命令执行命令执行/代码注入漏洞概述代码注入漏洞概述l命令执行/代码注入漏洞的出现 应用程序直接/间接使用了动态执行命令的危险函数,并且这个函数的运行参数是用户可控的。如php可动态执行系统命令的函数:system、exec、passthru等等,php可动态执行php代码的有eval;jsp可动态执行系
2、统命令的函数有:Runtime.getRuntime().exec(.);asp/aspx可动态执行asp/aspx代码的有:eval等等。l命令执行/代码注入漏洞的本质 程序设计违背了“数据与代码分离”的原则。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍l命令或代码直接注入直接注入执行漏洞l命令或代码本地包含本地包含执行漏洞l命令或代码远程包含远程包含执行漏洞l命令或代码反序列化反序列化执行漏洞l命令或代码动态变量动态变量执行漏洞l命令或代码动态函数动态函数执行漏洞命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介
3、绍命令或代码直接注入执行漏洞概述命令或代码直接注入执行漏洞概述l命令注入:应用程序直接使用了危险的可执行系统命令的函数,比如php的system、exec函数等,并且这些函数的运行参数是用户可控的,若过滤不严格,就会增大命令执行漏洞的概率。命令或代码本地包含本地包含执行漏洞。l代码注入:应用程序直接使用了危险的代码执行函数,如php/asp/aspx的eval函数等,并且这些函数的运行参数是用户可控的,若过滤不严格,就会增大命令执行漏洞的概率。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令直接注入示例命令直接注入示例1(CGI)系统命令注入执行漏洞示例,就比如去年很火的Bash
4、漏洞,就属于这类漏洞,用户可直接更改HTTP头User-Agent的值,就可引发命令注入,如下图(命令执行结果将从myvps.org服务器上下载一个php文件到本地):命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令直接注入示例命令直接注入示例2(PHP)系统命令注入执行漏洞示例,如服务器端用php语言实现,并且有个system.php文件的内容含有如下片段eval(“$_GETarg;”);,或类似的片段,就会存在此漏洞。如下图:命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令直接注入示例命令直接注入示例2若用户输入的参数arg的值为精心组装过的,如:http:/
5、IP/test.php?arg=cat/etc/passwdl最后执行的命令就变成了 system(cat/etc/passwd),输出结果如下图(显示出了服务器机器上的用户名等敏感信息):命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码直接注入示例代码直接注入示例1(PHP)代码注入执行漏洞示例,如服务器端用php语言实现,并且有个eval.php文件的内容如下图:命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码直接注入示例代码直接注入示例1若用户输入精心组装过的数据,如:http:/127.0.0.1/cmdcode/code/eval.php?arg=phpi
6、nfo()则将执行php代码命令phpinfo(),结果如下图:命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码直接注入示例代码直接注入示例2(Strust2)代码注入执行漏洞示例,如之前红极一时的Strust2漏洞,也是由于未对用户可控参数进行有效的过滤引发的代码注入执行漏洞,如用户输入:http:/XXX/save.action?redirect:$%23a%3d(new java.lang.ProcessBuilder(new java.lang.Stringipconfig,/all).start(),%23b%3d%23a.getInputStream(),%23c%3
7、dnew java.io.InputStreamReader(%23b),%23d%3dnew java.io.BufferedReader(%23c),%23e%3dnew char50000,%23d.read(%23e),%23matt%3d%23context.get(com.opensymphony.xwork2.dispatcher.HttpServletResponse),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()命令执行命令执行/代码注入漏洞分
8、类介绍代码注入漏洞分类介绍代码直接注入示例代码直接注入示例2命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令或代码本地命令或代码本地/远程文件包含执行漏洞概述远程文件包含执行漏洞概述命令本地/远程包含漏洞:应用程序直接包含或执行了用户可控的上传脚本文件或远程文件(URL引用文件),就会触发此漏洞。l代码本地/远程包含漏洞:应用程序直接包含了用户可控的上传文件或远程文件(URL引用文件),就会触发此漏洞,比如php/asp/aspx的include,以及php的include_once、require_once、require等,有些远程文件包含的有些限制条件,比如PHP的就必须打
9、开配置选项:allow_url_fopen,才会成功。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令本地文件包含示例命令本地文件包含示例1(360安全卫士)360安全卫士有个“360电脑专家”功能,可以聊天,在聊天窗口中输入如下图内容,就会触发本地包含漏洞。这个漏洞的原理是360会将聊天内容写入到文件中去,然后显示的时候去读取文件,执行了包含的命令。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令本地文件包含示例命令本地文件包含示例1l就会看到这奇迹的一幕,弹出命令行了.命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令本地文件包含示例命令本地文件包含
10、示例2(php)若服务端代码文件中有个php文件的内容包含有类似代码【require($_GETp);】的片段,就会引发本地包含的漏洞。其中参数p为用户可控的,若p指定为一个用户上传的文件cmd.txt,并且这个txt的内容为,就会触发此漏洞命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令本地文件包含示例命令本地文件包含示例2命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码本地文件包含示例代码本地文件包含示例1(php)若服务端代码文件中有个php文件的内容包含有类似代码【require($_GETp);】的片段,就会引发本地包含的漏洞。其中参数p为用户可控的,若p
11、指定为一个用户上传的文件code.txt,并且这个txt的内容为,就会触发此漏洞命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码本地文件包含示例代码本地文件包含示例1命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令或代码反序列化执行漏洞概述命令或代码反序列化执行漏洞概述有些动态脚本语言,如php支持实例对象的序列化传输,然后服务端将实例对象反序列化出来并执行解析后实例的构造函数、析构函数或_wakeup()函数,若这些函数利用了用户可控的参数,则会触发命令/代码注入执行漏洞,原理和之前的直接注入一样。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍反序列化
12、漏洞示例反序列化漏洞示例1l若服务端代码文件中有个php文件的内容包含有类似如下图代码片段,就存在反序列化的漏洞。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍反序列化漏洞示例反序列化漏洞示例1访问serialize.php可以获取$class_ser的值为:O:1:a:1:s:4:test;s:19:;命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍反序列化漏洞示例反序列化漏洞示例1若用户提交如下图的序列化后的$class_ser的值给参数test,就会执行phpinfo()代码。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令或代码动态变量命令或代码动态
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02 命令 执行 代码 注入 漏洞
限制150内