2023蓝帽杯决赛WP
攻击路线图
外网区
任务一:引流APK渗透
步骤1:二维码分析
下载引流APK
解析二维码,发现flag和apk下载地址
步骤2:apk分析
下载apk并进行分析,使用 jadx 工具中全局搜索 flag{ 关键字
从搜索结果中,找到flag,双击即可复制,里面有两个flag,但是只有一个flag是正确的。
步骤3:通过apk发现目标其他网站
因为apk下载地址是:
http://172.16.20.200/%E6%B8%B8%E6%88%8F.apk
因此全局搜172.16.搜其他目标其他地址
02
任务二:博彩网站主站渗透
访问从apk中发现的网站http://172.16.10.102,发现是博彩网站主站
步骤4:文件上传获取目标服务器权限
访问系统之后,点击右上角的注册,根据要求填写信息,注册一个普通用户
注册成功之后在上面填入用户名和密码,登录系统
点击会员中心
在基本资料处有一个文件上传
在【会员中心】-【基本资料】处,点击【选择文件】,随意选择任意一张图片,尝试修改修改后缀为ini,发现可以成功上传
步骤5:绕过WAF
上传 .user.ini 文件,尝试对安全狗进行绕过
再次尝试上传木马文件,但是后缀是png的,文件名要与之前上传的.user.ini里auto_prepend_file对应的值一致,即也要是2.png
发现成功上传木马文件,点击测试连接,提示连接成功
点击添加,双击添加的记录即可进入shell
步骤6:查找flag
主机上共有两个flag查看flag.txt文件
查看数据库配置文件,在
C:/phpstudy_pro/WWW/include/db.php
03
任务三:客服服务平台渗透
步骤7:xss打cookie
在博彩网站主站点击【在线客服】
新建项目并查看项目代码,姓名、email以及电话信息任意输入,在留言部分输入以下信息,在xss平台中已经获取到cookie
步骤8:后台任意文件读取
开启burpsuite抓包,访问在线客服系统后台
1 | http://172.16.15.200:48513/admin/ |
将刚刚获取到的cookie进行替换
之后点击左上角的Forward,并关闭burpsuite抓包,替换cookie之后成功进入客服系统后台,在后台首页存在flag
客服后台存在任意文件读取,需要替换获取到的cookie,成功读取到配置文件
步骤9:目标端口、目录扫描
发现目标开放888端口
尝试使用刚刚获取到的用户名密码登录,成功登录系统
步骤10:获取目标shell
点击【SQL】,将以下语句写入目标,尝试通过写日志的方式写入shell,访问写入的shell
使用蚁剑连接shell,点击【测试连接】,连接成功
发现无法执行命令
步骤11:绕过disable_function
通过插件绕过disable_functions
双击进入目标,右键打开终端,输入whoami,成功执行命令
步骤12:通过计划任务提权
查看计划任务,发现root用户会定期执行/tmp/cleanup.py脚本
上传cleanup.py并插入恶意的命令
上传成功后,等待一分钟执行命令后,自动创建用户,成功获取客服系统服务器root权限
查看flag文件
04
任务四:优惠大厅渗透
发现是目标系统的优惠大厅
步骤13:前台sql注入
在前台【会员登录】处,随意输入账号密码,bp开启抓包
对该数据包进行sql注入测试,发现存在时间盲注,发送如下数据包,会延时5秒返回
编写脚本跑获取数据库长度和数据库名,执行该脚本获取目标数据库的长度和数据库名
1 | python3 dbs.py |
尝试写脚本跑数据库的数据表名,发现脚本用>判断会报错,尝试用=判断,可以成功注入出数据表名,脚本如下,跑的很慢,测试的时候,可以把for i in range(0,15)中的0改为12,执行该脚本
1 | python3 tables.py |
发现存在un_admin表,尝试获取该表的列名,将下面的代码写入columns.py中执行该脚本,发现存在username和password字段
1 | python3 columns.py |
编写脚本获取目标的username和password字段的值,将以下代码写入username.py中,执行改脚本,获取username字段的值
1 | python3 username.py |
同理,获取password字段值把上面脚本中的username改为password即可,因为密码在数据库存储一般是加密过的,所以字段长度也设置的大一点因为字段比较长,这里也注入的很慢,将上面的代码写入password.py中,执行该文件
1 | python3 password.py |
获取到后台账号和md5加密的密码
1 | admin 6fab062fd242430d18aeff4e116edb04 lmb 6e3261f301f41c5f4169cd562b259994 |
尝试md5解密,得到admin账号密码为:
1 | lmb@123 |
步骤14:获取后台flag
上面我们通过前台sql时间盲注获取到目标后台账号密码,但是我们现在还不知道后台地址
输入用户名密码成功登录后台
在后台【系统管理】->【管理组】->【管理员】处,发现flag