mylamour / blog

Your internal mediocrity is the moment when you lost the faith of being excellent. Just do it.
https://fz.cool
61 stars 14 forks source link

XSS Tricks And Others #16

Open mylamour opened 6 years ago

mylamour commented 6 years ago

输入输出在哪里

XSS技巧


* 编码
> * 对百分号二次编码
> * Base64 编码绕过
> * HTTP 实体编码绕过
>> `<a href=javascript&colon;confirm(2)>M`
> * \x十六进制,八进制,hex,demical
> * Unicode码
> * urlencode

Hello

Hello

Hello

Hello

M

M


> eval 认识\x十六进制,八进制,Unicode码

* CSS表达式

* 转义字符

* URL 中有可自定义的控制的前端编码

* 宽字节绕过

* 头部base绕过

* Referer为空时才可以访问(有一些界面为了避免是从别的地方跳转过来的,就需要referer为空)
> `HTTPS -> HTTP`
> `<meta name="referrer" content="never" >`

* 注意返回的type类型
> 返回的type类型是xml和html时,才可能执行

* 阻止浏览器302跳转

* 头部X-XSS-Protection

* 大小写绕过

* 标签绕过

* 闭合标签

#### 哪些标签(本节直接摘自P神博客,原文链接在文末)
* a 标签的xlink
> 
不要点我 M ``` * script 标签 > ``` //想玩这个,可以在这里转换你的编码 http://www.jsfuck.com/ //其实我们并不需要一个规范的script标签 // //在这里我们依然可以使用那些编码 //不只是alert。prompt和confirm也可以弹窗 //可以用"/"来代替单引号和双引号 //我们还可以用char // ".source"不会影响alert(7)的执行 //如果输出是在setTimeout里,我们依然可以直接执行alert(1) ``` * Button 标签 > ```

M

` * img标签 > img标签没有什么好讲的了。不过值得注意的是,有些姿势是因浏览器不通而不能成功的执行的。所以在空闲时间对payload进行分类,做上可执行浏览器的注释来提高你挖掘XSS的效率。 ``` //只在chrome下有效 //只在chrome下有效 ``` * body标签 > 没有什么特别之处,都是通过event来调用js ```







































``` * var标签 > `KCF` * div标签 > ```
X
``` * iframe标签 > iframe这个例子当中值得一提的是,有时候我们可以通过实体编码 &Tab(换行和tab字符)来bypass一些filter。我们还可以通过事先在swf文件中插入我们的xss code,然后通过src属性来调用。不过关于flash值得一提的是,只有在crossdomain.xml文件中,allow-access-from domain=“*"允许从外部调用swf时,我们才可以通过flash来实现xss attack. > ``` 把javascript代码每个字符每隔一定的TAB分开 ``` * meta标签 > 很多时候,在做xss测试时,你会发现你的昵称,文章标题跑到meta标签里。那么你只需要跳出当前属性再添加http-equiv="refresh",就可以构造一个有效的xss payload了。当然一些猥琐流的玩法,会通过给http-equiv设置set-cookie来,进一步重新设置cookie来干一些猥琐的事情 > ``` ? ``` * object标签 > 和a标签的href属性玩法是一样的,不过优点是无须交互。 > `` * marquee标签 > `` * isindex标签 > 第二个例子,值得我们注意一的是在一些只针对属性做了过滤的webapp当中,action很可能就是漏网之鱼。 > ``` ``` * input标签 > 没有什么特别之处,通过event来调用js。和之前的button的例子一样通过 autofocus来达到无须交互即可弹窗的效果。在这里使用到了onblur是希望大家学会举一反三。 > ``` ``` * select标签 > `