某服务器网站重构实战
这是一次网站重构实战,脱敏后发一下水水
部署服务分析
通过分析数据盘的目录结构,发现与宝塔面板的目录结构高度相似
分析数据盘上次的挂载位置,发现挂载系统盘的/www
目录下
进入数据盘的/server/panel
目录下,发现BT-Panel
、BT-Task
、default.pl
等关键特征文件,以此确定此服务器上部署了宝塔面板
网站重构
后台入口
将系统进行仿真并设置网络连接为主机模式
,防止服务器访问互联网,开机后发现数据盘已经通过开机任务自动挂载到/www
使用命令bt default
查看宝塔面板的入口地址及用户密码
通过查看文件/www/server/panel/data/userInfo.json
,得到绑定手机号为136********
,服务器公网地址为39.103.179.202
在宝塔面板中可以看到有一个网站处于运行状态
为网站添加一个域名,使得我们可以访问
访问成功
接下来分析网站结构,在网站的app
目录下,发现两个可疑目录,分别为okadmin
和youadmin
,通过这两个入口均能访问到相应的后台页面
实现登陆
查看youadmin
登陆页面信息,发现需要提供用户名和密码并进行验证
获取管理员账号
利用宝塔中提供的mysql
数据库的用户名密码登陆到数据库当中
将root
用户的Host
改为%
,去除ip限制,方便利用Navicat
软件登陆
关闭防火墙,使用Navicat
成功连接到数据库,看到管理员的用户名是admin
,密码是一串未知方式的哈希值
去除验证码
点击验证按钮,发现长时间处于智能检测中
的状态
分析其网络请求发现,网站调用了外部的api
来进行验证
查看登录页源码,经过分析,发现控制登录逻辑的文件为/www/wwwroot/app.eayous1.com/app/youadmin/controller/Login.php
,分析该文件,发现登录页为index3
,在服务器中对应的文件为/www/wwwroot/app.eayous1.com/app/youadmin/view/login/index3.html
分析index3.html
文件,在第21
行开始发现调用了外部的js脚本,将这段代码去除
随后通过关键字v5
、verify
等将所有涉及的代码全部去除
将相关代码全部去除后,已经成功去除验证码
破坏登陆逻辑
我们已经得到用户名admin
,接下来在Login.php
中使其接收请求的时候不接收验证码
将验证密码的判断全部改为false
这样一来,使用用户名admin
并搭配任意6位以上的密码均可以成功访问到网站后台
在网站后台的门店账号
列表中,发现每个门店都有一个登陆按钮,点击之后发现跳转到okadmin
下
则youadmin
是网站后台,okadmin
是门店后台
充值页面
通过代理列表
中给出的推广链接
进行访问
分离出后缀url
拼接到设置的地址192.168.143.132
后面,就可以访问到充值平台
数据库查询三国杀相关的信息
通过结合网站前端、代码及数据库进行分析,最终使用如下的sql语句得到三国杀相关的信息
SELECT t_order.order_sn AS 订单编号, t_order.contact AS 联系方式, t_order.payMoney AS 充值金额, t_order.fwf AS 服务费, IF ( t_order.pay_status = 1, "已支付", "未支付" ) AS 支付状态, IF ( t_order.payList NOT IN ( SELECT t_game_tc.k FROM t_game_tc WHERE t_game_tc.game_id = 25 ), "未知类型",( SELECT t_game_tc.v FROM t_game_tc WHERE t_game_tc.game_id = 25 AND t_game_tc.k = t_order.payList )) AS 支付类型, t_order.pay_type AS 支付方式, FROM_UNIXTIME( t_order.add_time ) AS 订单时间, FROM_UNIXTIME( t_order.pay_time ) AS 支付时间, t_order.servername AS 大区, t_order.account AS 充值账号, t_order.charname AS 账号昵称, t_merchant.mer_name AS 店铺名称, t_user.username AS 代理商 FROM t_order, t_merchant, t_user WHERE t_order.shopid = t_merchant.id AND t_order.user_id = t_user.id AND t_order.game_id = 25
查询结果共计16256
条数据