版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
命令执行/代码注入漏洞王朋涛深信服北京安全团队命令执行/代码注入漏洞概述命令执行/代码注入漏洞分类介绍命令执行/代码注入漏洞挖掘方法命令执行/代码注入漏洞攻击防御总结培训提纲命令执行/代码注入漏洞概述命令执行/代码注入漏洞概述命令执行/代码注入漏洞的出现应用程序直接/间接使用了动态执行命令的危险函数,并且这个函数的运行参数是用户可控的。如php可动态执行系统命令的函数:system、exec、passthru等等,php可动态执行php代码的有eval;jsp可动态执行系统命令的函数有:Runtime.getRuntime().exec(...);asp/aspx可动态执行asp/aspx代码的有:eval等等。命令执行/代码注入漏洞的本质程序设计违背了“数据与代码分离”的原则。命令执行/代码注入漏洞分类介绍命令执行/代码注入漏洞分类介绍命令或代码直接注入执行漏洞命令或代码本地包含执行漏洞命令或代码远程包含执行漏洞命令或代码反序列化执行漏洞命令或代码动态变量执行漏洞命令或代码动态函数执行漏洞命令执行/代码注入漏洞分类介绍命令或代码直接注入执行漏洞概述命令注入:应用程序直接使用了危险的可执行系统命令的函数,比如php的system、exec函数等,并且这些函数的运行参数是用户可控的,若过滤不严格,就会增大命令执行漏洞的概率。命令或代码本地包含执行漏洞。代码注入:应用程序直接使用了危险的代码执行函数,如php/asp/aspx的eval函数等,并且这些函数的运行参数是用户可控的,若过滤不严格,就会增大命令执行漏洞的概率。命令执行/代码注入漏洞分类介绍命令直接注入示例1(CGI)系统命令注入执行漏洞示例,就比如去年很火的Bash漏洞,就属于这类漏洞,用户可直接更改HTTP头User-Agent的值,就可引发命令注入,如下图(命令执行结果将从服务器上下载一个php文件到本地):命令执行/代码注入漏洞分类介绍命令直接注入示例2(PHP)系统命令注入执行漏洞示例,如服务器端用php语言实现,并且有个system.php文件的内容含有如下片段eval(“$_GET[arg];”);,或类似的片段,就会存在此漏洞。如下图:命令执行/代码注入漏洞分类介绍命令直接注入示例2若用户输入的参数arg的值为精心组装过的,如:http://[IP]/test.php?arg=cat/etc/passwd最后执行的命令就变成了system("cat/etc/passwd"),输出结果如下图(显示出了服务器机器上的用户名等敏感信息):命令执行/代代码注入漏洞洞分类介绍代码直接注入入示例1(PHP)代代码注入执行行漏洞示例,,如服务器端端用php语语言实现,并并且有个eval.php文件件的内容如下下图:命令执行/代代码注入漏洞洞分类介绍代码直接注入入示例1若用户输入精精心组装过的的数据,如:cmdcode/code/eval.php?arg=phpinfo()则将执行php代码命令令phpinfo(),结果如下图图:命令执行/代代码注入漏洞洞分类介绍代码直接注入入示例2(Strust2)代码码注入执行漏漏洞示例,如如之前红极一一时的Strust2漏漏洞,也是由由于未对用户户可控参数进进行有效的过过滤引发的代代码注入执行行漏洞,如用用户输入:http://XXX/save.action?redirect:${%23a%3d(newjava.lang.ProcessBuilder(newjava.lang.String[]{'ipconfig','/all'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnewjava.io.InputStreamReader(%23b),%23d%3dnewjava.io.BufferedReader(%23c),%23e%3dnewchar[50000],%23d.read(%23e),%23matt%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),%23matt.getWriter().println(%23e),%23matt.getWriter().flush(),%23matt.getWriter().close()}命令执行/代代码注入漏洞洞分类介绍代码直接注入入示例2命令执行/代代码注入漏洞洞分类介绍命令或代码本本地/远程文件包含含执行漏洞概概述命令本地/远远程包含漏洞洞:应用程序直直接包含或执执行了用户可可控的上传脚脚本文件或远远程文件(URL引用文文件),就会会触发此漏洞洞。代码本地/远远程包含漏洞洞:应用程序直接接包含了用户户可控的上传传文件或远程程文件(URL引用文件件),就会触触发此漏洞,,比如php/asp/aspx的的include,以及及php的include_once、require_once、、require等,有有些远程文件件包含的有些些限制条件,,比如PHP的就必须打打开配置选项项:allow_url_fopen,才会成成功。命令执执行/代码码注入入漏洞洞分类类介绍绍命令本本地文文件包包含示示例1(360安安全卫卫士)360安全全卫士士有个个“360电脑脑专家家”功功能,,可以以聊天天,在在聊天天窗口口中输输入如如下图图内容容,就就会触触发本本地包包含漏漏洞。。这个个漏洞洞的原原理是是360会会将聊聊天内内容写写入到到文件件中去去,然然后显显示的的时候候去读读取文文件,,执行行了包包含的的命令令。命令执执行/代码码注入入漏洞洞分类类介绍绍命令本本地文文件包包含示示例1就会看看到这这奇迹迹的一一幕,,弹出出命令令行了了.....命令执执行/代码码注入入漏洞洞分类类介绍绍命令本本地文文件包包含示示例2(php)若若服务务端代代码文文件中中有个个php文文件的的内容容包含含有类类似代代码【【require($_GET['p']);】】的片片段,,就会会引发发本地地包含含的漏漏洞。。其中中参数数p为为用户户可控控的,,若p指定定为一一个用用户上上传的的文件件cmd.txt,,并且且这个个txt的的内容容为<?phppassthru($_GET["cmd"]);?>,,就就会触触发此此漏洞洞命令执执行/代码码注入入漏洞洞分类类介绍绍命令本本地文文件包包含示示例2命令执执行/代码码注入入漏洞洞分类类介绍绍代码本本地文文件包包含示示例1(php)若若服务务端代代码文文件中中有个个php文文件的的内容容包含含有类类似代代码【【require($_GET['p']);】的的片段段,就就会引引发本本地包包含的的漏洞洞。其其中参参数p为用用户可可控的的,若若p指指定为为一个个用户户上传传的文文件code.txt,,并且且这个个txt的的内容容为<?phpeval("$_GET[code];");?>,,就就会触触发此此漏洞洞命令执执行/代码码注入入漏洞洞分类类介绍绍代码本本地文文件包包含示示例1命令执执行/代码码注入入漏洞洞分类类介绍绍命令或或代码码反序序列化化执行行漏洞洞概述述有些动动态脚脚本语语言,,如php支持持实例对对象的的序列列化传传输,然后后服务务端将将实例例对象象反序序列化化出来来并执执行解解析后后实例例的构构造函函数、、析构构函数数或__wakeup()函函数,,若这这些函函数利利用了了用户户可控控的参参数,,则会会触发发命令令/代代码注注入执执行漏漏洞,,原理理和之之前的的直接接注入入一样样。命令执执行/代码码注入入漏洞洞分类类介绍绍反序列列化漏漏洞示示例1若服务务端代代码文文件中中有个个php文文件的的内容容包含含有类类似如如下图图代码码片段段,就就存在在反序序列化化的漏漏洞。。命令执执行/代码码注入入漏洞洞分类类介绍绍反序列列化漏漏洞示示例1访问serialize.php可以获获取$class_ser的值为为:O:1:"a":1:{s:4:"test";s:19:"<?phpphpinfo();?>";}命令执执行/代码码注入入漏洞洞分类类介绍绍反序列列化漏漏洞示示例1若用命令执执行/代码码注入入漏洞洞分类类介绍绍命令或或代码码动态态变量量/函数执执行漏漏洞概概述有些动动态脚脚本语语言,,如php,支支持变变量或或函数数的动动态定定义,,即运运行时时可通通过参参数名名来动动态组组装变变量、、变量量值或或函数数。若若代码码中包包含有有类似似如图图中类类似代代码片片段,,就会会存在在动态态变量量/函函数的的执行行漏洞洞。命令执执行/代码码注入入漏洞洞分类类介绍绍命令或或代码码动态态变量量/函数执执行漏漏洞示示例当用户户在浏浏览器器中输输入:dynamic.php?dyn_func=system&argument=ipconfig,就就相当于于执行了了系统命命令ipconfig,如下下图命令执行行/代码码注入漏漏洞挖掘掘方法命令执行行/代码码注入漏漏洞挖掘掘方法挖掘方法法从漏洞的的本质以以及前面面的示例例中可以以明显的的看出,,输入点点是一切切注入的的根源,,挖掘漏漏洞就是是寻找这这些输入入点,寻寻找方法法主要有有:-白盒审计计-黑盒审计计-灰盒审计计命令执行行/代码码注入漏漏洞挖掘掘方法白盒审计计概述白盒审计计,就是是指手上上已经有有份完整整的源码码,然后后分析源源码,选选择一切切用户可可控的输输入点,,然后分分析这些些输入点点是否未未过滤或或过滤不不严格,,这些点点是最易易引发注注入漏洞洞,比如如常见的的XSS、SQL、命命令以及及代码注注入漏洞洞等。白盒审计计方法一一般采用用人工以以及工具具相结合合的方法法。纯工工具的相相对一些些有些逻逻辑跳转转的没法法发现,,纯人工工的效率率太低,,也容易易遗漏,,正常情情况是使使用工具具找到所所有的输输入点,,然后人人工依次次跟踪变变量的处处理流程程。命令执行行/代码码注入漏漏洞挖掘掘方法白盒审计计工具FortifySCAFortifySCA是是一个静静态的、、白盒的的软件源源代码安安全测试试工具。。它通过过内置的的五大主主要分析析引擎::数据流流、语义义、结构构、控制制流、配配置流等等对应用用软件的的源代码码进行静静态的分分析,分分析的过过程中与与它特有有的软件件安全漏漏洞规则则集进行行全面地地匹配、、查找,,从而将将源代码码中存在在的安全全漏洞扫扫描出来来,并给给予整理理报告。。扫描的的结果中中不但包包括详细细的安全全漏洞的的信息,,还会有有相关的的安全知知识的说说明,以以及修复复意见的的提供。。命令执行行/代码码注入漏漏洞挖掘掘方法白盒审计计工具FortifySCA命令执行行/代码码注入漏漏洞挖掘掘方法白盒审计计工具SeaySeay源代码码审计系系统,Seay源代码码审计系系统目前前只支持持PHP,功能能包括((一直在在更新)):-高精确度度自动白白盒审计计;-mysql数据库库管理;;-代码高亮亮;-黑盒敏感感信息泄泄露一键键审计;;-函数查询询;-正则调试试;-代码调试试;-多种字符符编码转转换;-函数/变变量定位位;-临时记录录(可保保存);;-审计报告告;-编辑保存存文件;;-自定义规规则;;-自动升级级检测;;-自定义编编辑器;;-POST数据提交交;命令执行行/代码码注入漏漏洞挖掘掘方法白盒审计计工具Seasy命令执行行/代码码注入漏漏洞挖掘掘方法黑盒审计计概述黑盒审计计,就是是指无法法获取到到源代码码,只能能通过现现有的WEB应应用,进进行摸黑黑测试,,测试所所有的输输入点。。通用的的方法是是使用扫扫描工具具扫描WEB的的目录列列表以及及所有参参数列表表,并分分析扫描描报告,,查看是是否有可可疑的输输入点。。黑盒审计计工具常常用的有有wvs、appscan、、nessus、w3af等等等,有有很多,,就不一一一列举举了,下下面就简简单的介介绍下这这几个软软件。命令执行行/代码码注入漏漏洞挖掘掘方法黑盒审计计工具WVS(WebVulnerabilityScanner)是是一个自自动化的的Web应用程程序安全全测试工工具,它它可以扫扫描任何何可通过过Web浏览器器访问的的和遵循循HTTP/HTTPS规则则的Web站点点和Web应用用程序。。适用于于任何中中小型和和大型企企业的内内联网、、外延网网和面向向客户、、雇员、、厂商和和其它人人员的Web网网站。命令执行行/代码码注入漏漏洞挖掘掘方法黑盒审计计工具WVS命令执行行/代码码注入漏漏洞挖掘掘方法灰盒审计计概述灰盒审计计,就是是指结合合前面介介绍的两两种方法法(白盒盒和黑盒盒审计)),边黑黑盒扫描描,边白白盒审计计,这样样就能快快速的定定位到哪哪个输入入点可疑疑,并且且通过白白盒审计计,就可可迅速的的找到并并编写POC代代码。灰灰盒审计计一般依依赖经验验,经验验越丰富富,一般般就能很很快的定定位到问问题所在在点以及及问题重重现,快快速的编编写出exp代代码。命令执行行/代码码注入漏漏洞攻击击防御命令执行行/代码码注入攻攻击防御御灰盒审计计概述基于前面面的分析析,注入入漏洞的的根源在在于过分分的相信信了每一一位用户户,总假假设用户户的输入入是正常常的、无无害的,,而没有有进行严严格的审审查判断断以及过过滤。由由于每一一位开发发者的经经验有限限,这些些问题总总会不知知不觉中中就被写写入到了了代码之之中,给给恶意浏浏览者有有可乘之之机。防御方法法一般是是加强开开发者的的安全意意识,以以及规范范开发流流程和代代码质量量的严格格审核。。如果是是采用第第三方的的应用时时,在代代码质量量是无法法控制的的情况下下,就可可以采用用部署入入侵检测测防御系系统或防防火墙进进行实时时防护。。总结介绍了命命令执行行/代码码注入漏漏洞的本本质介绍了命命令执行行/代码码注入漏漏洞分类类介绍了命命令执行行/代码码注入漏漏洞挖掘掘方法介绍了命命令执行行/代码码注入漏漏洞攻击击防御措措施总结9、静夜四无无邻,荒居居旧业贫。。。1月-231月-23Sunday,January1,202310、雨中黄叶叶树,灯下下白头人。。。13:05:1313:05:1313:051/1/20231:05:13PM11、以以我我独独沈沈久久,,愧愧君君相相见见频频。。。。1月月-2313:05:1313:05Jan-2301-Jan-2312、故人江江海别,,几度隔隔山川。。。13:05:1313:05:1313:05Sunday,January1,202313、乍乍见见翻翻疑疑梦梦,,相相悲悲各各问问年年。。。。1月月-231月月-2313:05:1313:05:13January1,202314、他他乡乡生生白白发发,,旧旧国国见见青青山山。。。。01一一月月20231:05:13下下午午13:05:131月月-2315、比不了得就就不比,得不不到的就不要要。。。一月231:05下下午1月-2313:05January1,202316、行行动动出出成成果果,,工工作作出出财财富富。。。。2023/1/113:05:1313:05:1301January202317、做前前,能能够环环视四四周;;做时时,你你只能能或者者最好好沿着着以脚脚为起起点的的射线线向前前。。。1:05:13下下午1:05下下午午13:05:131月-239、没有失失败,只只有暂时时停止成成功!。。1月-231月-23Sunday,January1,202310、很多事情情努力了未未必有结果果,但是不不努力却什什么改变也也没有。。。13:05:1313:05:1313:051/1/20231:05:13PM11、成功功就是是日复复一日日那一一点点点小小小努力力的积积累。。。1月-2313:05:1313:05Jan-2301-Jan-2312、世间成事,,不求其绝对对圆满,留一一份不足,可可得无限完美美。。13:05:1313:05:1313:05Sunday,January1,202313、不知香积积寺,数里里入云峰。。。1月月-231月月-2313:05:1313:05:13January1,202314、意志志坚强强的人人能把把世界界放在在手中中像泥泥块一一样任任意揉揉捏。。01一一月月20231:05:13下下午13:05:131月-2315、楚楚塞塞三三湘湘接接,,荆荆门门九九派派通通。。。。。。一月月231:05下下午午1月月-2313:05January1,202316、少少年年十十五五二二十十时时,,步步行行夺夺得得胡胡马马骑骑。。。。2023/1/113:05:1313:05:1301January202317
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025车辆保管合同书范文
- 2025保修工程合同范本
- 2025学校食堂承包合同书
- 2025关于试用期解除合同及案例
- 2025年度军事电子对抗保密技术合同3篇
- 2025年度新能源充电设施建设公司合作协议书3篇
- 二零二五年度农村房屋租赁合同(含农业产业升级)
- 二零二五年度体育场馆租赁合同及赛事运营协议3篇
- 2025年度农村个人地基使用权转让及农业现代化设施配套协议书3篇
- 2025年度教育信息化项目经理合作协议2篇
- 泰山产业领军人才申报书
- 专题07:回忆性散文阅读(考点串讲)
- 公司IT运维管理制度
- 护理带教课件教学课件
- 促进低空经济农林生产应用场景实施方案
- 重庆市市辖区(2024年-2025年小学四年级语文)人教版期末考试(上学期)试卷及答案
- 广东省一年级数学上学期期末考试试卷部编版-(附解析)
- 2024年公安基础知识考试题库及答案
- 2024年北京通州区初三九年级上学期期末数学试题和答案
- 新苏教版3三年级数学上册(表格式)教案【全册】
- 北师大版三年级数学上册寒假作业96
评论
0/150
提交评论