XXXXXXSS

编程入门 行业动态 更新时间:2024-10-27 05:23:56

XXXXXXSS

XXXXXXSS

URL编码表

.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

     


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

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


2. 存在宽字节

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

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

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

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

     


3. 没有过滤换行符

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

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

     


4. 没有过滤反斜线

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

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

     

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

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

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

             我还是一个字符串";


二、DOM型XSS查找思路


更多推荐

XXXXXXSS

本文发布于:2023-06-29 22:55:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/951981.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:XXXXXXSS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!