命令执行代码注入漏洞[教育课件]

上传人:8** 文档编号:177293090 上传时间:2022-12-25 格式:PPT 页数:43 大小:2.30MB
收藏 版权申诉 举报 下载
命令执行代码注入漏洞[教育课件]_第1页
第1页 / 共43页
命令执行代码注入漏洞[教育课件]_第2页
第2页 / 共43页
命令执行代码注入漏洞[教育课件]_第3页
第3页 / 共43页
资源描述:

《命令执行代码注入漏洞[教育课件]》由会员分享,可在线阅读,更多相关《命令执行代码注入漏洞[教育课件](43页珍藏版)》请在装配图网上搜索。

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函数等,并且这些函数的运行参数是用户可控的,若过滤不严格,就会增大命令执行漏洞的概率。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令直命令直接注接注入入示示例例1l(CGI)系统命令注入执行漏洞示例,就

4、比如去年很火的Bash漏洞,就属于这类漏洞,用户可直接更改HTTP头User-Agent的值,就可引发命令注入,如下图(命令执行结果将从myvps.org服务器上下载一个php文件到本地):命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令直命令直接注接注入入示示例例2l(PHP)系统命令注入执行漏洞示例,如服务器端用php语言实现,并且有个system.php文件的内容含有如下片段eval(“$_GETarg;”);,或类似的片段,就会存在此漏洞。如下图:命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令直命令直接注接注入入示示例例2l 若用户输入的参数arg的值为精

5、心组装过的,如:http:/IP/test.php?arg=cat/etc/passwdl 最后执行的命令就变成了 system(cat/etc/passwd),输出结果如下图(显示出了服务器机器上的用户名等敏感信息):命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码代码直直接注接注入入示示例例1l(PHP)代码注入执行漏洞示例,如服务器端用php语言实现,并且有个eval.php文件的内容如下图:命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码代码直直接注接注入入示示例例1l 若用户输入精心组装过的数据,如:http:/127.0.0.1/cmdcode/code

6、/eval.php?arg=phpinfo()则将执行php代码命令phpinfo(),结果如下图:命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码代码直直接注接注入入示示例例2l(Strust2)代码注入执行漏洞示例,如之前红极一时的Strust2漏洞,也是由于未对用户可控参数进行有效的过滤引发的代码注入执行漏洞,如用户输入:http:/XXX/save.action?redirect:$%23a%3d(new java.lang.ProcessBuilder(new java.lang.Stringipconfig,/all).start(),%23b%3d%23a.getI

7、nputStream(),%23c%3dnew 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().clos

8、e()命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码直接注入示例代码直接注入示例2命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命命令或代码本地令或代码本地/远程文件包含执行漏洞概述远程文件包含执行漏洞概述l 命令本地/远程包含漏洞:应用程序直接包含或执行了用户可控的上传脚本文件或远程文件(URL引用文件),就会触发此漏洞。l 代码本地/远程包含漏洞:应用程序直接包含了用户可控的上传文件或远程文件(URL引用文件),就会触发此漏洞,比如php/asp/aspx的include,以及php的include_once、require_once、require等,有些远程

9、文件包含的有些限制条件,比如PHP的就必须打开配置选项:allow_url_fopen,才会成功。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命命令令本本地文件包含示例地文件包含示例1l(360安全卫士)360安全卫士有个“360电脑专家”功能,可以聊天,在聊天窗口中输入如下图内容,就会触发本地包含漏洞。这个漏洞的原理是360会将聊天内容写入到文件中去,然后显示的时候去读取文件,执行了包含的命令。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命命令令本本地文件包含示例地文件包含示例1l 就会看到这奇迹的一幕,弹出命令行了.命令执行命令执行/代码注入漏洞分类介绍代码注入

10、漏洞分类介绍命命令令本本地文件包含示例地文件包含示例2l(php)若服务端代码文件中有个php文件的内容包含有类似代码【require($_GETp);】的片段,就会引发本地包含的漏洞。其中参数p为用户可控的,若p指定为一个用户上传的文件cmd.txt,并且这个txt的内容为,就会触发此漏洞命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令本地文件包含示例命令本地文件包含示例2命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码代码本地文件包含示例本地文件包含示例1l(php)若服务端代码文件中有个php文件的内容包含有类似代码【require($_GETp);】的片段,

11、就会引发本地包含的漏洞。其中参数p为用户可控的,若p指定为一个用户上传的文件code.txt,并且这个txt的内容为,就会触发此漏洞命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍代码本地文件包含示例代码本地文件包含示例1命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命命令或代码反序列化执行漏洞概述令或代码反序列化执行漏洞概述l 有些动态脚本语言,如php支持实例对象的序列化传输,然后服务端将实例对象反序列化出来并执行解析后实例的构造函数、析构函数或_wakeup()函数,若这些函数利用了用户可控的参数,则会触发命令/代码注入执行漏洞,原理和之前的直接注入一样。命令执行命

12、令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍反序列化漏洞示例反序列化漏洞示例1l 若服务端代码文件中有个php文件的内容包含有类似如下图代码片段,就存在反序列化的漏洞。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍反序列化漏洞示例反序列化漏洞示例1l 访问serialize.php可以获取$class_ser的值为:O:1:a:1:s:4:test;s:19:;命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍反序列化漏洞示例反序列化漏洞示例1l 若用户提交如下图的序列化后的$class_ser的值给参数test,就会执行phpinfo()代码。命令执行命令执行/代码注

13、入漏洞分类介绍代码注入漏洞分类介绍命令或代码动态变量命令或代码动态变量/函数执行漏洞概述函数执行漏洞概述l 有些动态脚本语言,如php,支持变量或函数的动态定义,即运行时可通过参数名来动态组装变量、变量值或函数。若代码中包含有类似如图中类似代码片段,就会存在动态变量/函数的执行漏洞。命令执行命令执行/代码注入漏洞分类介绍代码注入漏洞分类介绍命令或代码动态变量命令或代码动态变量/函数执行漏洞函数执行漏洞示例示例l 当用户在浏览器中输入:http:/127.0.0.1/dynamic.php?dyn_func=system&argument=ipconfig,就相当于执行了系统命令ipconfig

14、,如下图命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法挖掘方法挖掘方法l 从漏洞的本质以及前面的示例中可以明显的看出,输入点是一切注入的根源,挖掘漏洞就是寻找这些输入点,寻找方法主要有:-白盒审计 -黑盒审计 -灰盒审计 命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法白白盒审计概述盒审计概述l 白盒审计,就是指手上已经有份完整的源码,然后分析源码,选择一切用户可控的输入点,然后分析这些输入点是否未过滤或过滤不严格,这些点是最易引发注入漏洞,比如常见的XSS、SQL、命令以及代码注入漏洞等。l 白盒审计方法一般采用

15、人工以及工具相结合的方法。纯工具的相对一些有些逻辑跳转的没法发现,纯人工的效率太低,也容易遗漏,正常情况是使用工具找到所有的输入点,然后人工依次跟踪变量的处理流程。命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法白白盒审计工具盒审计工具Fortify SCA l Fortify SCA 是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态的分析,分析的过程中与它特有的软件安全漏洞规则集进行全面地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给予整理报告。扫描的结果中不但包括详细的安全漏洞的信息,

16、还会有相关的安全知识的说明,以及修复意见的提供。命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法白盒审计工具白盒审计工具Fortify SCA 命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法白白盒审计工具盒审计工具Seayl Seay源代码审计系统,Seay源代码审计系统目前只支持PHP,功能包括(一直在更新):-高精确度自动白盒审计;-mysql数据库管理;-代码高亮;-黑盒敏感信息泄露一键审计;-函数查询;-正则调试;-代码调试;-多种字符编码转换;-函数/变量定位;-临时记录(可保存);-审计报告;-编辑保存文件;-自定义规则;-自动升级检测;-自定义编辑器;-PO

17、ST数据提交;命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法白盒审计工具白盒审计工具Seasy命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法黑盒黑盒审计概述审计概述l 黑盒审计,就是指无法获取到源代码,只能通过现有的WEB应用,进行摸黑测试,测试所有的输入点。通用的方法是使用扫描工具扫描WEB的目录列表以及所有参数列表,并分析扫描报告,查看是否有可疑的输入点。l 黑盒审计工具常用的有wvs、appscan、nessus、w3af等等,有很多,就不一一列举了,下面就简单的介绍下这几个软件。命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法黑盒黑盒审计工具审计工具l

18、 WVS(Web Vulnerability Scanner)是一个自动化的Web应用程序安全测试工具,它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序。适用于任何中小型和大型企业的内联网、外延网和面向客户、雇员、厂商和其它人员的Web网站。命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法黑盒审计工具黑盒审计工具WVS命令执行命令执行/代码注入漏洞挖掘方法代码注入漏洞挖掘方法灰灰盒审计概述盒审计概述l 灰盒审计,就是指结合前面介绍的两种方法(白盒和黑盒审计),边黑盒扫描,边白盒审计,这样就能快速的定位到哪个输入点可疑,并且通过白盒审计,

19、就可迅速的找到并编写POC代码。灰盒审计一般依赖经验,经验越丰富,一般就能很快的定位到问题所在点以及问题重现,快速的编写出exp代码。命令执行命令执行/代码注入漏洞攻击防御代码注入漏洞攻击防御命令执行命令执行/代码注入攻击防御代码注入攻击防御灰灰盒审计概述盒审计概述l 基于前面的分析,注入漏洞的根源在于过分的相信了每一位用户,总假设用户的输入是正常的、无害的,而没有进行严格的审查判断以及过滤。由于每一位开发者的经验有限,这些问题总会不知不觉中就被写入到了代码之中,给恶意浏览者有可乘之机。l 防御方法一般是加强开发者的安全意识,以及规范开发流程和代码质量的严格审核。如果是采用第三方的应用时,在代码质量是无法控制的情况下,就可以采用部署入侵检测防御系统或防火墙进行实时防护。总结总结1.介绍了命令执行/代码注入漏洞的本质2.介绍了命令执行/代码注入漏洞分类3.介绍了命令执行/代码注入漏洞挖掘方法4.介绍了命令执行/代码注入漏洞攻击防御措施总结总结

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!