XSS也太太太难了,主要也是因为自己没花时间集中。
文章脉络:根据我粗浅的理解,从开始学习XSS到现在,从一开始的见框就插到现在去学构造、编码,首先需要的是能看懂一些payload,然后再去深入理解。所以,文章首先会介绍一些常见的可供利用的编码,然后再理解浏览器如何解析HTML文档,最后再总结一下。应该有很多不正确的地方,希望看到的朋友帮我指正以下,带我挖洞,冲。QQ:2309896923
写的这些内容都是借鉴总结了许多大神的文章,对大神提及的一些注意点进行总结归纳。
一、一般可利用的编码
1.URL编码
格式:%十六进制数
字符 | 编码 |
---|---|
= | %3D |
a | %61 |
我太难了 | %E6%88%91%E5%A4%AA%E9%9A%BE%E4%BA%86 |
记住常用符号、字母的 ASCII 码,能熟练转换 10 -16 进制即可。中文的URL编码略有不同,因为用的地方没有,也就不详写了
如何利用:浏览器的 URL 地址栏,反射型 XSS,可以将特殊字符进行 URL 编码,可以尝试多次编码试一试;POST过去的数据,存储型 XSS,跟反射型的一样。最后提一点:因为一般网站处理数据的时候最开始解码的一般是 URL 解码,所以可以在用其他编码构造完成 payload 后,最后再进行 URL 编码,由此可见,可以根据解码顺序,灵活得进行编码,最先解码的,就最后编码,懂我什么意思吧,我也不太懂我到底有没有说懂
2.HTML实体编码
格式:&#十进制/十六进制; (一般是用十进制)十六进制的时候为 &#x十六进制数
字符 | 实体名称 | 实体编码 |
---|---|---|
< | < |
< |
: | : |
: |
换行 | 
 |