XXXXXXSS

论坛 期权论坛 脚本     
匿名技术用户   2020-12-28 20:10   11   0

URL编码表

http://www.w3school.com.cn/tags/html_ref_urlencode.html

%22 "

%23 #

%27 '

%2f /

' '

  html 空格

" html "


javascript中的特殊字符如下:

\’ 单引号

" 双引号

\& 和号

\\ 反斜杠

\n 换行符 url中对应%0a

\r 回车符

\t 制表符

\b 退格符

\f 换页符

url中的特殊字符如下:

+ 表示空格(在 URL 中不能使用空格)        

/ 分隔目录和子目录        /

? 分隔实际的 URL 和参数       ?

% 指定特殊字符       %

# 表示书签        #

& URL 中指定的参数间的分隔符


javascript特性

1.//代表注释后面内容

2,\一个字符村没有结束。可以另起一行

3.js中都可以unicode表示

4.javascript里有一个特性。 如下:

aaa();

function aaa(){}

凡是以 function xxx(){} 形式定义的函数,都会被最优先解析。换句话说:

解析器在解析JS代码段时,会先将 function xxx(){} 拿到最前面解析,然后再依次解析其它的部分。 换句话说,上面的代码,实际的解析顺序是:

function aaa(){

}

aaa();

利用这样一个特性,我们的代码可以改改。

location.href="........."+"&ss=aaaa\"+"&from==1;function from(){}//"+"&param=";


一、反射型XSS的查找思路:

过滤了双引号

1. 如果输入值在JS脚本中

a.如果值在标签的属性中,要查看没有过滤 &,# 等符号。

在HTML属性中,会自动对实体字符进行转义,所以可以考虑将单引号' 写成 &#x27。

<img src="1" οnerrοr="alert(1)">和<img src="1" οnerrοr="alert&#x28;1&#x29;"> 是等效的

因为在url编码中&-> %26, # -> %23

所以最后在Url编码中输入,%26%23x27;%2balert(1)%2b%26%23x27 就等于 &#x27;+alert(1)+&#x2

http://www.wooyun.org/bugs/wooyun-2010-015963


b 如果输入值不在JS脚本中

a.如果值在标签的属性中,基本就绕不过了。


2. 存在宽字节

a. 如果输入值在JS脚本中

1. 首先要看html采用了哪种字符集,如果是GB这种,一般就存在宽字节隐患。

宽字节跨站,过滤了双引号。基本思路就是搞个%c0%22或者%bf%27用款字节过滤下。

正常宽字节是 %df%5c%27 但是%c0是可以吞掉一个%5c,也就是吞掉一个反斜杠\

http://www.wooyun.org/bugs/wooyun-2010-015969


3. 没有过滤换行符

a. 如果输入值在JS脚本中

1 .在JS中,如果输出值存在于注释当中,/n可以进行换行,如果在URL中则写成%0a

http://www.wooyun.org/bugs/wooyun-2010-016003


4. 没有过滤反斜线

a. 如果输入值在JS脚本中 尝试"闭合

1 .基本思路就是用\过滤到 \" 让前一个字符结束"和后面一个字符的最开始”合并起来。如果过滤空格就/**/注释掉试试。//注释掉后面的内容

http://www.wooyun.org/bugs/wooyun-2010-015979

2. 如果输出值在JS的注释当中,则可以将\利用成一个字符窜没有结束,另起一行。

如果\被拆成了\\两个,则用%c0吃掉一个。

例如:var a="我是一个字符串\

我还是一个字符串";

http://www.wooyun.org/bugs/wooyun-2010-016008


二、DOM型XSS查找思路


分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP