文章目录
一.xss_基础_图片演示
1.可以看看大致流程
二.xss_基本思路
固定思路
1.输入正常字符串,f12观察输入参数是否带入HTML页面
如果 带入页面,尝试闭合标签,符号
否则打开代理截断,在参数后面添加js观察是否执行
2.当闭合无效则尝试其他标签
其他标签使用时,可以是内联,也可以是外联,但一定要记住一点,必须闭合才行
3.当使用其他标签还是不行时,尝试特点编码
比如js的特定编码方式,以及把字符串改为16进制等等
最后其他总结,我们接着往下学,在一点一点总结
三.1-10_通关
1.没有过滤的xss
第一关没有做任何过滤所以这里我们不做演示直接输入:
图中命令及可插入js代码,当然弹出的的xss要改为我们要求的xss,这里我写错了,大家通关的时候可以吧“xss”改为document.domain及可
成功弹出
2.属性中的xss
解释属性中的xss:带入属性,比如本题就是带入了属性value
我们输入常规脚本
f12审查元素,发现我们输入的脚本,被插入了value属性中。
怎么办了?
思考:
是否能尝试闭合value的 " 和input的 >
让其闭合整个标签,然后使我们的js代码逃逸出来
这里有张图不在了,我们用文字演示
我们在上面那张图中的代码前加上“>
然后输入到框架中
使得整个标签闭合
最后弹出js代码
3.选择列表中的xss
解释标题:
选择列表则是代表我们设置的参数值中的xss
我 们输入任意字符提交
然后审查元素
发现并不会插入都标签中
并且输入框也返回为空
当出现这种情况就需要打开代理截断工具
提交然后发现有两个提交的参数
所以我们可以在两个参数后面插入js代码看看反应
我们再次提交参数
代理截断,然后插入js代码在第二个参数后面
然后右键点击此选项
复制
在粘贴到我们的页面中,就可以看到弹出了xss
当然我们也可以直接点击forword同样是提交参数
4.隐藏参数中的xss
1.什么是隐藏中的参数?
答:
当我们输入按f12然后审查提交的参数时,
发现提交的和代理截断的并不一样,
说明有的元素被隐藏了,
因此我们可以尝试在隐藏元素后面注入js代码
输入正常元素发现无法审查元素
因此我们依然使用代理截断
截断时发现了,多了个参数,而我们按f12时只有两个提交的参数
因此,我们可以在多的这个参数处尝试注入
我们在打开审查工具
发现输入框中是用input标签闭合的,
我们输入js代码,点击forword,并没有成功
我们在打开审查工具
发现输入框中是用input标签闭合的,
因此我们和第二关同样的思路
需要闭合标签
我们闭合标签,在输入js代码,在点击forword
成功弹窗
5.限制长度的xss
输入正常字符,审查元素,发现使用input标签,所以还是前面同样的思路
然后我们输入js代码,发现限制了长度,
所以我们需要修改文本框的长度
再次输入并闭合
成功弹窗
6.HTML中的xss
介绍
可以使用多个js命令或函数
思路
1.通过HTML触发xss,也就是内置触发(注意闭合前面,以及闭合后面,具体情况具体分析)
2.闭合整个标签
如下图整理
输入正常字符,发现使用input标签,
插入常规的js代码
我们发现我们的>被转义为其他字符,因此我们的js代码无效
所以我们需要换个思路
在input标签内部注入代码,
在input内部尝试onclic标签
发现多了个“
闭合输入”闭合掉它
成功弹窗
因此当我们发现不能逃逸整个标签时,
我们可以换个思路
在内部闭合使他一样可以在内部执行
7.空格分隔属性中的xss
正常思路
输入正常字符
闭合,以及输入js代码,发现多了个 ”
并且js代码没有逃逸出来
哪我们去掉我们输入的 ”
发现还是有
闭合试试,还是没出来
哪这个应该不行
我们用其他方法
内联一个onclick
内联成功,但是多了个 value属性和onclick后面都多了个”
所以我们把符号都去掉
尝试使用空格代替符号
成功植入
8.javascript伪协议触发的xss
常规输入字符
发现植入了<a herf 超链接(点击则触发)中,
常规思路
无法逃逸出来
使用Java伪协议
格式:
javascript:xxx;xxx;xxx;
哪我们使用下面一条语句
成功执行
9.utf-7(老版本,别管他了)
这个是utf7的版本,这里就按下面步骤做就可以,就不管他了
10.双写绕过中的xss
我们已经发现是input标签
常规思路
闭合以及输入js代码
发现插入,但是我们的domain不在了
尝试双写绕过
解释:当domain被过滤
则中间那个不在了,两边的拼接起来又恢复了。
成功弹窗,插入成功