zoukankan      html  css  js  c++  java
  • xss讲解

    xss漏洞发生在前端,攻击的是浏览器的解析引擎

    xss就是让攻击者的javascript代码在受害者的浏览器上执行

    xss攻击者的目的就是寻找具有xss漏洞的网页,让受害者在不知情的情况下,在有xss漏洞的网页上执行攻击者的js代码

    xss是提前埋伏好漏洞陷阱,等着受害者上钩。

    既然攻击者是执行javascript代码,所以攻击的语句应该能让javascript运行。

    javascript运行条件:"<script></script>"标签中,onclick=事件属性中

    xss的攻击payload一定满足上述条件

    xss学习主要是以测试看到效果为主,通常的明显效果就是使用alert弹个框,弹框意味着我们的js执行了。

    xss攻击,一定牢记“输入输出”,输入指的是攻击者对服务器网页输入恶意代码,输出指的是浏览器接收到代码后能解析并输出到前端。

    xss的原理就是开发者没有对输入内容进行过滤,导致通过攻击者精心构造的前端代码,输入后和原有的前端代码产生混淆,形成新的页面语句,并且新的页面语句能被浏览器解析并输出。

    xss测试步骤:

    1、找到输入点,随便乱输,输完字符后,查看输出。

    2、打开网页源代码,在源代码中查看输出的位置。

    3、以testxss.php为例

    输入内容:abcd

    输出的位置:<input type="text" value="abcd">

    我们的目的是进行xss攻击,执行js代码。执行js代码的条件是要有script标签或事件属性。

    <script>alert(1)</script> 这个是一定能在页面上执行弹警告框的

    如果我们直接输入上述代码,会变成:

    <input type="text" value="<script>alert(1)</script>"> 这个并不符合html的语法

    为了使alert可以执行,就需要把上面的内容变换一下:

    <input type="text" value=""><script>alert(1)</script>">  变成这样的话,就是input和script两个标签都能执行

    因此,我们的输入就变成

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

    那此时浏览器在解析的时候,就会解析出两个元素,一个是input,一个是script,从而执行了我们在script中的js代码,完成了xss攻击

    要使用事件属性触发:

    <img src=1 onclick="alert(1)">
    payload1:"><img src=1 onclick="alert(1)">
    payload2: " onclick="alert(1)

    反射型XSS

    我们构造好一个urlxss的payload,发送给受害者,受害者点击恶意链接后会在受害者的浏览器上执行恶意代码。反射型xss是一次性的,而且比较容易被发现。通常恶意连接会被修改成短链接,或钓鱼图片的形式。

    存储型xss

    存储型又叫永久性xss,常见于留言板。因为存储型xss的页面会将用户输入的内容存入到数据库内,所以当其他人每访问一次的时候,服务器都会从数据库将攻击者输入的内容调取到前端浏览器解析,因此每一次访问就相当于一次xss攻击。

    以dvwa靶场中的存储型xss为例:xss(stored)

    这是一个留言板,攻击者输入的恶意代码被存入数据库,当其他受害者访问该留言板的时候,后台就会把数据库的恶意代码调取到前端可以被解析的位置,自然每一次访问都会中招。

    DOM型xss

    不与服务器交互,本质上也是一种反射型xss。主要利用js使用dom对前端html进行操作时候产生的漏洞。DOM型xss的难点就在于通过阅读javascript来确定输出的位置,才好构建输入的payload。

    DOM型XSS可通过开发者工具观察js变化

    实战中如何利用xss呢?

    通过xss获取受害者cookie信息。

    条件:

    1、有一个xss漏洞页面;

    2、攻击者需要一个xss信息接收平台

    实验目的:获取受害者cookie,并以受害者的身份浏览网站。

    实验工具:攻击者接收xss平台:192.168.100.1 攻击者账号:gordonb/abc123

    服务器:装有dvwa的网站 192.168.100.200 受害者账号: admin/password

    实验过程:攻击者gordonb在目标网站上设下xss陷阱,当受害者中坑后会把cookie信息发给攻击者,攻击者就用受害者的cookie访问网站。

    XSS常用测试语句:
    <script>alert(1)</script>
    <img src=1 onerror=alert(1)>
    <svg onload=alert(1)>
    <a href=javascript:alert(1)>
    <input onfocus=write(1) autofocus>



  • 相关阅读:
    linux 之 系统监控
    Spring Cloud Eureka 常用配置及说明
    mysql的事务隔离级别
    什么场景中会用到java多线程(转)
    springboot配置druid连接池
    MyBatis标签详解(转)
    关于@JsonSerialize注解的使用方法
    layer绑定回车事件(转)
    php7+apache2.4配置
    Eclipse创建Maven项目不支持el表达式的解决方式
  • 原文地址:https://www.cnblogs.com/gx991010/p/13054652.html
Copyright © 2011-2022 走看看