目录
什么是xss?
跨站脚本攻击(cross-site-scripting,为避免和前端css重叠,所以用xss)是代码注入的一种
他允许恶意用户将代码注入网页,其他用户在浏览网页时就会受到影响
xss的分类
1.反射型XSS
2.存储型XSS
3.DOM型XSS
有什么作用(危害)?
反射型XSS
存储型XSS
DOM型XSS
XSS平台的使用
获取cookie的话基础默认模块就行
复制代码到可能出现xss的地方
后台运行之后xss平台即可接收到数据
如果接收不到数据,检查该网站是否能正确执行代码
可用弹窗检查<script>alert(document.cookie)</script>
查看浏览器以及该网站是否开启http-only
如果都正常,那就是xss平台的问题了,多换几个试试
获取cookie后可以利用postman进行连接进入后台
xss-lab
less-1
直接将text修改成js代码,<script>alert(1)</script>
less-2
1.查看网页源代码,发现test值是value值
2.因此首先闭合value再写入语句
"><img src=1 οnerrοr=alert(1)>
less-3
通过查看源码发现它会将左右括号以及双引号转义
所以可以利用点击事件οnclick='alert(1)'
前面需要加上'上使其闭合,alert前也需加上'与本来存在的那个单引号组成'alert(1)'
此时代码如下
然后再点击输入框,即可通过
less-4
查看源代码发现value处左右括号消失不见
而在h2标签处双引号以及左右括号被转义
因此还可以利用点击事件类似less-3
如下:"οnclick="alert(1)
即可通过
less-5
查看源代码发现,value处没有改变,而在h2标签处双引号,左右括号被转义,如果利用点击事件会发现,onclick的on被隔开了,如图所示。
那么这里可以利用
<a href="javascript:alert(1)">123(点击123就会跳转链接,链接为该js代码)
构造如下图:先闭合<input>标签在写入<a>标签,那么input标签剩下的">点击即可跳转到js代码
less-6
查看源代码发现与less-5类似,但是href却被隔开
可以尝试大小写绕过(!!html不区分大小写,!!javascript区分大小写)
所以将href改成Href即可
less-7
查看源代码发现,将所有字符转成了小写,同时将关键字删除
那么只需要双写关键字就行,如:
<a hhrefref="javasscriptcript:alert(1)">
经过转换后即变成
<a href="javascript:alert(1)">
less-8
查看源代码发现以上方法都行不通,双写,大写都不行
那我们可以将代码转换成Unicode编码,html会将其解码
less-9
查看代码发现在前面的基础上添加了检查字符串是否包含http://
只需要在上一题基础上加上//http://,前面的//在js里就是注释,所以后面被注释掉了,前面能正常执行,而被注释掉的也能通过验证
less-10
less-11
beef-xss
终端输入beef-xss打开,然后在浏览器打开界面,复制代码到xss攻击处即可
然后即可在beef-xss进行攻击,查看信息等