实验来源于:Pikachu漏洞平台教学视频
一、反射型xss(get)
将maxlength的值调大
在输入框中< script> alert(/xss/) < /script>
提交,显示弹框
二、反射性xss(post)
打开后需要登录,由暴力破解实验可知账号密码,登录
和上个实验内容一样,输入框内输入< script> alert(/xss/) < /script>提交会有弹框
GET和POST的区别是:
GET是以url方式提交数据而POST是以表单方式在请求体里面提交
即在上一个实验中,可以通过URL来改变参数利用xss漏洞,而在这个实验中不可以
三、存储型xss
与前两个实验不同的是,这个为存储型XSS
之前为一次性的反射型XSS,而这个写进了数据库
与之前相比,这个会造成一个持久性伤害
每次打开页面弹窗都会出现
四、DOM型xss
查看源码可知
点击提交按钮时会触发onclick事件,执行domxss()函数
通过document.getElementById()函数获取输入框内内容
显示到页面
只要将 < a href=" "> < /a >标签造成闭合即可
可以按照源码中注释掉的代码,也可以使用 javascript:alert(/xss/)
五、DOM型xss-x
这个实验也是构成一个闭合即可
与上一个有所不同的是,这个可以在URL处修改参数
六、xss盲打
在这个实验中,填写表格内容后,出现如下提示
我们并不能看到内容,只有后台管理员登录才能看到
按照提示,进入后台管理员页面
管理员一登陆出现弹窗
七、xss之过滤
在输入框中输入< script >alert(‘xss’)< /script >
查看源码,发现输出在p标签中,但是script不见了
很有可能是做了一个过滤把script过滤掉了
于是,再次输入< script>alert(‘xss’)< /script>
但有所不同的是修改大小写,例如:
< Script>alert(‘xss’)< /scrIpt>
在此尝试,弹窗出现
后又尝试输入
< a href=“javascript:alert(/xss/)”>click me< /a>
发现也不能出现超链接,应该是同样过滤掉了href
于是我改成了hReF,弹框出现
八、xss之htmlspecialchars
首先
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
具体的在这里
预定义的字符是:
" & "成为&
" “ " 成为"
" ‘ " 成为'
" < "成为<
" > "成为>
可用的引号类型:
ENT_COMPAT - 默认。仅编码双引号
ENT_QUOTES - 编码双引号和单引号
ENT_NOQUOTES -不编码任何引号
来看实验
输入’"<>script后提交
查看源代码
由图可以看出"和<以及>,这三个符号虽然能在页面显示,但在代码中却不是
不过可以看出,单引号符号仍可使用
尝试输入javascript:alert(/xs/),提交
九、xss之href输出
随便输入一串,查看源码
发现输入的字符串是在href中的
可以利用javascript:alert(/xxs/)完成弹窗输出
十、xss之js输出
先随便输入一串字符串
查看源码发现,输入被动态的生成到了javascript中
可以输入
’< /script>< script>alert(111)< /script>
提交,弹窗出现
雪碧可乐_2020/4/19_18:03