前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >xss备忘录

xss备忘录

作者头像
黑白天安全
发布2020-03-19 17:39:19
5620
发布2020-03-19 17:39:19
举报

XSS的基本概念

代码语言:javascript
复制
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript。

跨站脚本攻击`(Cross Site Scripting)`缩写为CSS,但这会与层叠样式表`(Cascading Style Sheets,CSS)`的缩写混淆。因此,我们将跨站脚本攻击缩写为XSS。

xss的原理

代码语言:javascript
复制
HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,<title>与</title>之间的字符是页面的标题等等。

当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段`JavaScript脚本时`,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。

我们可以在本地构造一个网页来了解一下xss的原理。

代码语言:javascript
复制
<html>
   <head>
      <title>XSS原理分析</title>
    </head>
  <body>
    <form action="" method="get">
    <input type="text" name="input"><input type="submit">
     </form>
   <hr>
  <?php
   $xss = $_GET['input'];
   echo '请输入<br>'.$xss;
    ?>
    </body>
</html>

网页如下图

如果我们给他输入一个恶意的HTML代码看看。

代码语言:javascript
复制
<script>alert(/xss/)</script>

成功进行了一次xss攻击。alret(/xss/)在页面中执行了。

我们来看看源代码。可以看到我们的Scritp脚本,已经写入到页面中了。

xss的分类

代码语言:javascript
复制
XSS有三类:反射型XSS(非持久型)、存储型XSS(持久型)和DOM XSS。

反射型XSS Non-persistent XSS

代码语言:javascript
复制
发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射。

存储型XSS persistent XSS

代码语言:javascript
复制
存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。
代码语言:javascript
复制
最典型的例子是留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,那些留言的内容会从数据库查询出来并显示,浏览器发现有XSS代码,就当做正常的HTML与Js解析执行,于是触发了XSS攻击。

DOM XSS DOM Based XSS

代码语言:javascript
复制
DOM XSS和反射型XSS、存储型XSS的差别在于DOM XSS的代码并不需要服务器参与,触发XSS靠的是浏览器端的DOM解析,完全是客户端的事情。

我们来看看一个例子。

代码语言:javascript
复制
   <html>
     <head>
        <meta charset="UTF-8">
         <title>dom XSS原理分析</title>
         </head>
       <body>
        <h1 >DOM XSS原理分析 cn0sec.cn</h1>
            <input type="text" name="address1" value="请输入">
           </body>
  </html>

我们看看网页

如果我们输入

代码语言:javascript
复制
"/><script>alert(document.cookie)</script><!-

那么就会变成

代码语言:javascript
复制
<input type="text" name="address1" value=""/><script>alert(document.cookie)</script><!- ">

嵌入的JavaScript代码将会被执行。

XSS的危害

代码语言:javascript
复制
挂马(水坑攻击)
盗取用户Cookie。
DOS(拒绝服务)客户端浏览器。
钓鱼攻击
劫持用户Web行为,甚至进一步渗透内网。
其它安全问题
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑白天实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档