目录
概述
xss总结来说就是js代码或html代码显示或者默默的插入到代码中(一般通过网页的显示能更加直观的看出来),而这种前端语言被显示便会被执行。
产生的地方(去源代码去找输入的数据)
当输入的数据的时候,数据会被显示在网页上,或者修改网页属性时,网页的源代码(html中)的内容会发生变化,或者留言板(使用的前提是网站存在该漏洞)
判断类型
1.反射型
通过提交参数,然后参数在页面上回显,即会经过php文件运行,然后打印在前端,注意value也有可能被赋值。
2.存储型
通过提交参数,永久在数据库上,每次访问都会自动打印在网页上,然后执行js代码。
3.dom型
同样提交一个参数,与反射型不同的是,参数不会打印而是直接嵌入到了网页源码中。
绕过方法(一个是输出的地方,一个是dom里面)
1.换位置
绕过htmlspecialchars()注释<>
当有敏感信息被过滤使,去value值里面看看被没被过滤,没过滤则闭合插入js。
需要写成<javascript:alert('xss') >这种形式了
①看看前端代码,提交参数闭合语句后面闭合,怎样闭合需要看看能否在框中执行,如在value里还要把value先闭合如写成''然后在后插入js。
如onfocus 通常用于 <input>, <select>, 和<a>可以在里面直接用
②f12,去改代码。
2.换标签
绕过一些action失效
提交框失效可以试试, <οnfοcus=javascript:alert('xss') >
绕过一些加_分隔敏感词
3.大小写
4.双写(如果发现某个词消失了)
5.unicode编码
6.回车绕过空格
7其它
一.隐藏表单,type为hidden
?ty=<script>alert('xss')</script>&name1=" type="text"&name1=" type="text"&name3=" type="text"
//然后看看哪些属性变了,在里面再写
?ty=<script>alert('xss')</script>&name=" type="text" onclick="alert('xss')
- url写入
- http头写入,先查看源代码看看有没有可疑之处,然后抓包分析
二.ng-include:
?src='level1.php?name=<img src=1 οnerrοr=alert(1)>' 不止是包含了一个文件,更是把js代码包含进来了。
绕过安全狗
1.更换标签
更换标签如弹窗标签等//涉及到js和html语法
<video src=x onerror=prompt(1);>
<video src=x onerror=alert(48)>
2.垃圾数据
3.特殊符号干扰
4.加解密
<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>
base64加密:PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg
解码:<script>alert(1)</script>
5.fuzz工具跑
其他问题:
当遇到httponly无法劫持co
okie怎么办
如果网站有xss漏洞,想办法把xxs插进去
浏览器未保存帐号密码:需要 xss 产生登录地址,利用表单劫持
浏览器保存帐号密码:浏览器读取帐号密附上xss平台:XSS平台-免费XSS平台 (xsshs.cn)https://xsshs.cn/xss.php?do=login