十大常见web漏洞——命令执行漏洞
命令执行漏洞在不同框架下都有存在,也是十分普遍且危害极大,下面我们介绍一个最具代表性的,也是影响范围最大的一个命令执行漏洞--Struts2远程代码执行漏洞。
漏洞介绍
ApacheStruts是一款建立Java web应用程序的开放源代码架构。Apache Struts存在一个输入过滤错误,如果遇到转换错误可被利用注入和执行任意Java代码。
网站存在Struts2远程代码执行漏洞(CVE-2010-1870)的大部分原因是由于网站采用了Apache Struts Xwork作为网站应用框架,Xwork通过getters/setters方法从HTTP的参数中获取对应action的名称,这个过程是基于OGNL(object graph navigation language)的,由parametersintercceptor调用valuestack.setvalue()完成的,它的参数用户控,由HTTP参数传入。OGNL的功能强大,远程执行代码也正是利用了这一点,导致网站面临安全风险。
实例演示
说了一大堆,可能大家不太理解,没关系咱们直接上实例,下图是用工具检测出存在Struts2远程命令执行漏洞网站的反馈信息,警告:存在Struts2远程代码执行漏洞-编号S2-016。