当前位置:
首页 > 笔记 > 非常见XSS的技术分析

非常见XSS的技术分析

写该文章源于江苏移动项目的检测,地址 http://221.178.xxx.xxx:8080,最早我们只检测到一个XSS,后来局方发邮件提到我们还有一个为什么没有检测到,看了之后就有了本文。

当访问一个不存在的网址时,
例如http://localhost:8080/noAction.do,那么Struts处理后都会跳到提示“Invalidpath /noAtcion.do was requested”的页面。
如图1:
非常见XSS的技术分析
如图2:
非常见XSS的技术分析
如图3:
非常见XSS的技术分析
那么按道理,
提示页面就会变成

“Invalid path /<script>alert('opansoft')</script> wasrequested“

,但是实际上却不是这样。
很明显,这里执行了

<script>alert('opansoft')</script>

这脚本,最终显示的内容就会把执行的脚本代码去掉,剩下Invalid path / was requested。漏洞就在这里了。

众所周知,XSS的出现都是把代码插入到文件中,或者让文件执行。这里的XSS代码没有依赖任何文件却被直接执行了,经过分析,这是由于struts自身原因,且配置不当造成,此时任意脚本的输入都被当做脚本执行了。

解决方案:
1.最简单的方法,设置并指定自定义的404/Notfound处理网页。
2.升级到Struts 1.2.8版本
Struts 1.2.8版本已经解决了这个XSS漏洞。而之前的版本都受到XSS漏洞的影响。
2.配置"unknown"Struts Action
如果客户端请求了struts-config.xml中没有定义的资源,Struts会丢出 404Invalid path 的讯息,您可以撰写匿名的ActionMapping来提供自己的错误讯息:

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

总结:
此XSS问题是struts的框架问题。

非常见XSS的技术分析:等您坐沙发呢!

发表评论

表情
还能输入210个字