1 / 102

攻击 JAVA WEB

攻击 JAVA WEB. 阿里巴巴 集团安全中心 周拓. 个人介绍. 周拓 阿里巴巴集团安全中心 网名:空虚浪子心、 kxlzx QQ : 4700012 (&EMAIL) 个人 BLOG : http://www.inbreak.net 微 博 : http://t.qq.com/javasecurity. 适合听众. 实战派攻击技术爱好者 WEB 安全 攻城狮 JAVA 开发 安全扫描工具开发人员 理论派研究人员 默认大家已经掌握一些相关基础技术. JAVA WEB. JSP Servlet. JAVA WEB. J2EE 处理用户请求框架

muncel
Download Presentation

攻击 JAVA WEB

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 攻击JAVA WEB 阿里巴巴集团安全中心 周拓

  2. 个人介绍 • 周拓 • 阿里巴巴集团安全中心 • 网名:空虚浪子心、kxlzx • QQ:4700012 (&EMAIL) • 个人BLOG:http://www.inbreak.net • 微博:http://t.qq.com/javasecurity

  3. 适合听众 • 实战派攻击技术爱好者 • WEB安全攻城狮 • JAVA开发 • 安全扫描工具开发人员 • 理论派研究人员 • 默认大家已经掌握一些相关基础技术

  4. JAVA WEB • JSP • Servlet

  5. JAVA WEB • J2EE 处理用户请求框架 • J2EE ORM框架 • J2EE 展示层框架 • AJAX框架

  6. JAVA WEB USER STRUTS2、spring mvc、turbine、JSF、DWR…etc action1 action2 action3 Velocity、freemarker、JSP template1 template2

  7. 开始之前 • 任何攻击技术,技术本身都是有限的 • 不讲SQL INJECTION • 不讲业务逻辑 • 现在,我们打开了一个JAVA网站

  8. 框架指纹的手工确认 • 架构师的故事 • 黑客的思路

  9. 默认扩展名 • 扩展名“*.action” • 扩展名“*.do ” • 扩展名“*.form ” • 扩展名“*.vm” • 扩展名“*.jsf ”

  10. 扩展名“*.action” • 判断为struts2或webwork,得分:90% • http://www.inbreak.net/index.action • 官方DEMO • 各种教程书籍

  11. 扩展名为“*.do” • 判断为spring mvc 得分50% • http://www.inbreak.net/index.do • 方向性判断 • 官方文档 • 教程 • 还有很多其他框架(struts1等)

  12. URL路径“/action/xxxx” • 判断为struts2 得分 70% • http://www.inbreak.net/action/index • 官方手册 • 结合response的server字段

  13. 扩展名为“*.form” • 看到一个表单判断为spring mvc 得分70% • 官方手册推荐 • .NET偶尔也用

  14. 扩展名“*.vm” • 判断为VelocityViewServlet 分值90% • Velocity • Velocity tools • 教程 • Turbine、Struts2、spring mvc都可能使用

  15. 扩展名“*.jsf ” • Java Server Faces 得分99%

  16. 参数处理方式目录 • Struts2对string类型参数处理 • 一个参数,直接显示错误页面 • spring mvc有个怪习惯

  17. Struts2 string类型参数处理 • 《struts2框架安全缺陷》 • 《HTTP Parameter Pollution》 • ?username=aaa&username=bbb • <input value="aaa, bbb" name="username" type="text" /> • 得分95%

  18. 一个参数,变错误页面 • 所有的用户定义Action都继承这个类 • Action中的setter方法 ActionSupport action1

  19. 一个参数,变错误页面 • ActionSupport验证逻辑

  20. 一个参数,变错误页面 • ?actionErrors=aaaaaaaaaa 100%确认,struts2框架

  21. spring mvc有个怪习惯 • spring mvc • Spring tag lib • checkbox

  22. spring mvc有个怪习惯 • <input id="favorites1" name="favorites" type="checkbox" value="1"/><input type="hidden" name="_favorites" value="on"/>computer 90%确认,spring mvc

  23. spring mvc有个怪习惯 • EXAMPLE

  24. 默认URL处理逻辑 • url mapping USER 处理用户请求的框架 action1 action2 action3 template1 template2

  25. turbine框架的逗号们 • templates/pubinfo/infopub/businpub.html

  26. turbine框架的逗号们 • turbine/template/pubinfo,infopub,businpub.html • Turbine • Template • 逗号 • turbine框架,分值90%

  27. Struts2的叹号们

  28. Struts2的叹号们 • http://www.inbreak.net/test.action • http://xxx/test!adduser.action • 分值95%

  29. 默认开发命名 • /xxxController • /xxxController.do • /controller/xxx.htm • Spring mvc 50%分值

  30. 所有框架指纹 • 让它出错 • 500错误 • 404错误 • 100%的确认框架

  31. 参数类型错误 • 数字,日期变为string • http://www.polyplastics.com/v/n?i=933&l=03&s=1

  32. 参数类型错误 • http://www.polyplastics.com/v/n?i=933&l=03&s=1kxlzx

  33. 业务逻辑错误 • https://www.cibil.com/online/manageCustomerDetails.do? • action=showAddPaymentPage

  34. 业务逻辑错误 • action=showAddPyy7aymentPage Action[/XXXXX] does not contain method named YYYYY

  35. 文件名错误 • http://eoweb.dlr.de:8080/servlets/template/welcome/entryPage.vm

  36. 万能google • 命名空间 • google搜索“com.netease”

  37. 万能google

  38. 环境的影响 • 不断的招聘开发者 • 推荐框架、主要框架 • 离职可以立刻接手 • 加分项

  39. 可能的位置 • Struts2 • 静态资源映射 • Directory traversal vulnerability • 《Struts2框架安全缺陷》 • “struts”、或“static”开头

  40. 其他地方 • 开发人员的blog • 内部论坛对外

  41. 框架指纹章节 • Q&A?

  42. 有多少拒绝服务目录 • java浮点漏洞 • Tomcat transfer-encoding: buffered • Hash 碰撞

  43. java浮点漏洞 • 网上交易

  44. Struts2 DOS漏洞 • http://www.inbreak.net/app/secTest.action?new java.lang.Double(2.2250738585072012e-308)

  45. Struts2 DOS漏洞 • new java.lang.Double(0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072012)

  46. Struts2 DOS漏洞 • 仅仅是技术讨论 • 不适合实战 • 直接拿CVE-2011-3923杀过去

  47. spring mvc dos • Message=${applicationScope} • EL表达式 • index.htm?message=${0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072012}

  48. 邪恶的JAVA HASH DOS攻击 • JSON OBJECT拒绝服务 • url?var={“aaaaa”:”bbbbb”,”ccccc”:”ddddd”}

  49. DWR框架DOS攻击 • C0-pram0=Object_Object:{id:reference:c0-e2, address:reference:c0-e3,………..etc..}

  50. 有多少拒绝服务章节 • Q & A

More Related