黑客网站渗透入侵破解拿权限
10.5K subscribers
2.38K photos
108 links
Download Telegram
通达OA v11.7 在线用户登录漏洞

访问漏洞页面获取phpsession

可以看到我们已经获取到了phpsession,这个时候我们就可以访问他的后台页面了,但是如果页面显示RELOGIN说明存在漏洞但是管理员现在不在线,所以需要等他在线。

这里需要注意:我们要添加一个路径为系统目录后面跟上webroot,但是webroot会被过滤,但是他没有检查大小写,所以我们改为Webroot就可以轻松绕过。

这里唯一需要注意的是我们需要将发布范围里添加一个系统管理员,这样子才可以,路径的话呢还是webroot那个路径。

然后我们添加一个文件,也就是我们的shell

这里需要注意的是,我们需要将我们的木马改为jpg后缀的,要不路径无法查看。

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
修改木马后缀
回到我们之前的上传页面,然后点击编辑。

鼠标放到我们木马上面,然后点击重命名。

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

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

数据格式大概是这个样子:
NEW_FILE_NAME=166&CONTENT_ID=118&FILE_SORT=2&ATTACHMENT_ID=2925%402103_1578257970&ATTACHMENT_NAME_POSTFIX=jpg&ATTACHMENT_NAME=2.jpg&FIRST_ATTACHMENT_NAME=2&FILE_NAME_OLD

这个时候我们就需要修改ATTACHMENT_NAME_POSTFIX属性为php.(注意后面有个.)
然后重放这个数据包,就可以看到修改成功。
拼接木马路径
可以看到我们修改成功。

然后找到之前的文件名,然后将我们上传的原始的文件名(2.jpg)改为(166.php),这个是根据你上传的路径以及改的名称来定的,然后路径的话呢还是file_folder/2013,我们就可以访问到我们的马子了。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
1👍1
6月初审计这套cms找了这个洞,同时还有另一个前台sqli这里不提,我看见ourphp官网前几天更新了版本
可能是迫于压力更新修复漏洞了

网站在进行安装时通过文件 /function/install/index.php 执行安装

安装过程会动态创建出 /config/ourphp_config.php 配置文件,生成代码

function getRandomString($len, $chars=null){
if (is_null($chars)){ $chars = "bcdefghijklmnpqrtuvwxyzBCDEFGHIJKLMNPQRTUVWXYZ12345679"; }
mt_srand(10000000*(double)microtime());
for ($i = 0, $str = '', $lc = strlen($chars)-1; $i < $len; $i++){
$str .= $chars[mt_rand(0, $lc)];
}
return $str;
}

配置文件中有一个全局变量 safecode,从安装文件 install.php可以看到 safecode 的生成算法,
调用 getRandomString 生成随机32位字符串,再截取这个32位字符串第6位开始的6个字符拼接在后面。
另外还有一个全局变量 validation 默认是12345,目前线上运营的网站很少有人改动这个变量,所以绝大部分都是12345。

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
getRandomString 的随机性仅取决于种子 10000000*(double)microtime()
这个种子我先直接给出结果,后面再做分析。
在所有php版本里,10000000*(double)microtime() 的结果集如下
0、10、20、30、40、50 ...... 9999960、9999970、9999980、9999990
一共100万个,也就是函数 getRandomString 生成的结果集为100万个。

我们用这100万个种子根据getRandomString的算法生成100万个safecode。

如果网速快或者多台机器并发,使用burpsuite插件 Turbo Intruder 发起一百万个请求只需要一根烟的功夫,
很快就可以爆破出safecode。下面接着说通过哪个接口爆破safecode,以及拿到safecode如何getshell

这里贴出文件 /client/manage/ourphp_filebox.php 关键代码

接口 /client/manage/ourphp_filebox.php 通过 $_GET取出两个 get 参数
validation code,传入了函数 pw,下面是函数pw代码

可以看到get取出的参数用来和全局变量 $ourphp[‘validation’] $ourphp[‘safecode’] 进行比较,
如果不一致的话会进入else逻辑最后 include ‘ourphp_checkadmin.php’;
ourphp_checkadmin.php 这个文件作用是管理员身份校验。
那么使用正确的validation safecode 就通过了校验,
这里我直接用/config/ourphp_config.php配置文件
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
Woo,定义了这么多的常量,我们先不着急看每个常量是什么,目光到25行的require 'temmoku'.DS.'run.php';
包含了'temmoku'.DS.'run.php',其中DS在index.php中的第16行所定义,值为目录中的斜杠(\)。
那么我们跟进run.php文件看一下

常量是不会变化的量,整个程序的运行中定义一次就不能修改。我们通过这一点,结合PHP给出的常量查询函数,在程序运行中的末尾全部提取。

这里贴出代码:
foreach(get_defined_constants(true)['user'] as $k=>$v){
echo $k.'---'.$v."\r\n";
}

将它放在index.php的末尾。通过源代码查看这些常量,然后复制到我们一个记事本中,审计中需要用到时,我们再进行查询。

/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke
👍1
可以看到包含了Temmoku.’functions.php’文件,这个时候我们的小记事本就有它的用途了,我们在记事本中进行搜索。

这样的话也就是包含了 D:\phpstudy_pro\WWW\temmoku\temmoku\functions.php 文件,我们打开temmoku/functions.php文件进行读取。

可以清晰的看到functions.php文件中定义了超多函数,除此之外我们要注意的是functions.php文件中到底是不是只定义了一些公共方法,有没有写其他的语句。这里笔者大致浏览了一下只是定义了许多的方法,所以我们回到run.php再次进行通读。

包含temmoku/app.php文件,我们打开看一下。

在run.php文件的末尾有调用新包含进来的app类的run方法,我们看到spl_autoload_register时一定需要注意,因为该函数是用来自动包含文件用的,用来加载出实例化不到的类。它对我们的代码审计起着重要的作用。
我们来读一下Load_Class静态方法中到底是怎么玩儿的。

第82行中调用了str_caps_look方法,这也就是我们之前包含进来的functions.php文件中所定义的方法,但是str_caps_look方法中第一个参数将”\”替换为了”/”是为什么呢?到这里我们需要引发一些猜想,因为PHP中的命名空间使用”\”进行分命名,所以它这里将”\”替换为了”/”也许是为了后期的路径问题。
我们搜索一下str_caps_look方法看一下它是如何定义的。
/网站渗透 /黑客编程技术
/软件渗透 /提取数据
/网站权限 /网站入侵破解
有需求的找我
@MoA_Ke