1. 题目要求
1.获取 PHP 的版本号作为 flag 值提交;(例如:5.2.14)
2.获取 MySQL 数据库的版本号作为 flag 值提交;(例如:5.0.22)
3.获取系统的内核版本号作为 flag 值提交;(例如:2.6.18)
4.获取网站后台管理员 admin 用户的密码作为 flag 值提交;
5.找到/root 目录中的 txt 文件,将文件内容作为 flag 值提交。
2. 环境准备
- Kali Linux 虚拟环境一台
- Postman 接口调试工具
3. 前期准备
第 1 步:进入 kali 渗透机,使用命令 find / -name CVE-2016-4010-*,并切换到 PoC 代码的路径下
(注意本例中的 PoC 代码路径和实际目录有所出入)
第 2 步:使用命令 php exploit.php 生成 payload 代码
复制以上生成的代码备用
4. 开始复现
第 3 步:进入 Windows 靶机系统桌面,打开位于桌面上的 Chrome 浏览器,输入靶机的 IP 地址,访问靶机的站点首页
点击页面上的任意商品,进入商品的详情页面,如下
点击上方用红框框住的按钮“Add to Cart”,将商品加入到购物车,然后点击网页页面右上角的购物车按钮
在弹出的菜单中选择 Go to Checkout 进入购物车结算
在接下来的页面中填充一些值到页面中,注意邮箱地址填写 xxx@xxx.com,其他地方填写任意的信息即可
在点击 Next 按钮之前,按 F12 打开调试控制台中的 Firebug 插件
然后点击 Next,观察插件中的 POST 字段的报文信息,其中结尾为 shipping-information 为关键内容,复制 shipping-information 前面的字符串
第 4 步:打开 Windows 桌面下的 Postman 接口调试工具
进入软件的页面窗口后点击导航栏中的“New”按钮
然后在弹出的窗口中选择 Reuest 项目
由上至下依次,完成下面的操作
Request name --> magento_exp
Create Folde --> exp
在创建目录成功后点击右边的对勾
最后,点击 Save to exp
第 5 步:复制前面在 Firebug 中获取的 URL 地址,并将 shipping-information 修改为 set-payment-information,其最终的结果如下所示
将 URL 复制到 Postman 的提交栏中,并点击 URL 地址的前面的菜单,修改提交方式为 POST 方式如下所示
然后切换到 Body 标签中,修改数据包为 raw 源码形式
选择 Text 按钮,修改文本格式为 JSON
将之前生成的 payload 代码复制到下面的代码框中
最后点击 Postman 工具的 Send 按钮。观察回复的数据包中是否和下面的截图一致,一致则说明木马植入成功
接下来访问 http://靶机 IP/pub/command.php?cmd=ifconfig
第 6 步:按照要求获取目标的 PHP 版本号,回到 kali 渗透机器,使用命令 nmap -sV -p 80 靶机 IP
PHP 的版本号为 7.0.25
Flag1: 7.0.25
第 7 步:回到 Chrome 浏览器中执行命令 mysql --help 查看 mysql 的版本号信息
MySQL 的版本号为 5.7.31
Flag2: 5.7.31
第 8 步:继续使用网站后门执行命令 uname -mrs 查看系统内核的版本号信息
系统内核的的版本号为 3.10.0
Flag3: 3.10.0
第 9 步:查看文件../htdocs/app/etc/env.php 下的文件
http://192.168.36.140/pub/command.php?cmd=cat+../../htdocs/app/etc/env.php
找到数据库的连接用户名和密码;
回到 kali 渗透机使用命令 mysql -uroot -h192.168.36.140 -p 输入上面的密码
使用命令查询数据库中的用户密码
Flag4: gzhxpy20@)..
查看 root 目录下的文件
Flag5:nkuaeryvaerygf
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于