博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts1.x 跨站脚本(XSS)漏洞的解决
阅读量:7078 次
发布时间:2019-06-28

本文共 987 字,大约阅读时间需要 3 分钟。

一. 演示XSS


   当访问一个不存在的网址时,例如
[url]http://localhost:8080/demo/noAction.do[/url]
,那么Struts处理后都会跳到提示“
Invalid path /noAtcion.do was requested
”的页面。


   但如果我们访问的网址是
[url]http://localhost:8080/demo/<script>alert[/url]('ok')</script>.do
,那么按道理,提示页面就会变成“
Invalid path /<script>alert('ok')</script>.do was requested
”。很明显,这将会执行
<script>alert('ok')</script>
这脚本,最终显示的内容就会把执行的脚本代码去掉,剩下
Invalid path /.do was requested
。漏洞就在这里了,如果那脚本是有害的,另有企图的,那么...


二. 解决方法

   尝试输入
,将会提示该页面不存在,而不会像上面的提示那样。

   解决方法就在这里:设置专门处理404等error的页面。这是Struts官方网站提供的一种方法之一。

   而官方网站的wiki(
)还提供其他方法。


   
1.升级到Struts 1.2.8版本

     Struts 1.2.8版本已经解决了这个XSS漏洞。而之前的版本都受到XSS漏洞的影响。


   
2.配置"unknown" Struts Action

     如果客户端请求了struts-config.xml中没有定义的资源,Struts会丢出 404 Invalid path 的讯息,您可以撰写匿名的ActionMapping来提供自己的错误讯息:

 

    <action
      name="error"
      path="/unknown" 
      unknown="true" 
      forward="/WEB-INF/pages/error.jsp"/>
 


   如果RequestProcessor遇到没有定义的Action请求,则会交由匿名的ActionMapping来处理。



   当然别忘了最简单的方法: 设置并指定自定义的404/Not found处理网页。

本文转自 Icansoft 51CTO博客,原文链接: 

http://blog.51cto.com/android/113584

转载地址:http://sujml.baihongyu.com/

你可能感兴趣的文章
《深入解析IPv6(第3版)》——2.8 使用Windows PowerShell来查看IPv6配置信息
查看>>
阿里巴巴企业诚信体系 .xin域名解读(阿里之声)
查看>>
利用物联网发动 DDoS 攻击的恶意程序源代码公开
查看>>
《基于ArcGIS的Python编程秘笈(第2版)》——1.2 ArcGIS Python窗口的使用
查看>>
《策略驱动型数据中心——ACI技术详解》一1.3 数据中心设计
查看>>
Raspberry Pi 树莓派获得 OpenGL 支持
查看>>
《AutoCAD 2016中文版室内装潢设计从入门到精通》——1.2 室内设计制图
查看>>
2017GAITC丨朱小燕:人机对话能直接能减少90%人工,极大提升效率
查看>>
《Spring Boot官方指南》翻译邀请
查看>>
在 CentOS 和 RHEL 上安装 Puppet 服务器和客户端
查看>>
《团队软件过程(修订版)》—第1章1.7节小结
查看>>
混合云态势感知安全解决方案
查看>>
《动手搭建智能家居系统》——2.2 传感器和执行器
查看>>
怎么学好php
查看>>
《Raspberry Pi用户指南》——1.2 Windows vs. Linux
查看>>
大数据与机器学习:实践方法与行业案例.3.2 自动加载的流程
查看>>
《HTML5+CSS3网页设计入门必读》——1.8 总结
查看>>
Linux 下以其他用户运行程序
查看>>
《易学Python》——6.6 怪物出没
查看>>
可视化经典:10幅精妙绝伦的科学视图
查看>>