命令执行漏洞

用户传入的参数,会被当成系统指令来执行,指令内容用户可控

命令执行的危险函数

1
2
3
4
5
6
system()   => 直接执行系统指令,并且会打印出我们的结果
exec() => 会执行指令,但是显示结果不会直接输出,结果只保留最后一行
shell_exec() => 会执行指令,但是显示结果不会直接输出,保留多行结果
`` => shell_exec()
passthru() => 等价system()
popen()

浏览器特殊协议(查看网页源码) view-source:

exec()、shell_exec()等无回显代码,查看命令有无成功执行的技巧

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

没有回显时,怎么判断我们的指令有没有执行

  • dnslog.cn 通过dnslog将数据外带
  • 将指令的结果输出到一个文本文件中,然后去访问这个文件

IBOS代码执行

全局搜危险函数system()无果

image-20240304193623713

看看exec()函数

image-20240304194354619

  • {$mysqlBin} 是一个变量,它包含了 MySQL 安装目录中 mysqldump 可执行文件的路径。
  • mysqldump 是 MySQL 提供的一个命令行工具,用于备份或导出 MySQL 数据库中的数据。
  • --force--quickmysqldump 命令的选项,分别用于强制导出和快速导出数据。
  • $command1$command2$command3 等都是一些变量,它们可能包含其他的 mysqldump 命令选项或者参数。
  • --add-drop-tablemysqldump 的一个选项,表示在导出数据之前先删除已存在的表。
  • --host--user--password 等选项用于指定数据库连接的主机、用户名和密码。
  • {$db["host"]}{$db["username"]}{$db["password"]} 等是一些变量,它们分别存储了数据库连接信息中的主机、用户名和密码。
  • {$db["dbname"]} 是一个变量,它存储了要导出数据的数据库名称。
  • $tablesstr 可能是一个变量,它存储了要导出数据的特定表格或者是一些表格的列表。
  • > 用于将命令的输出重定向到指定的文件中,$dumpFile 是一个变量,它存储了导出的数据将要保存的文件路径。

从此处开始向上寻找,看dumpFile都经过了怎样的处理

image-20240304200330517

353行对已存在的名为dumpFile文件进行删除

352行

image-20240304201039190

$dumpFile 的赋值过程将 core\utils\PATH_ROOT 返回的项目根目录路径与 $backupFileName 变量存储的文件名拼接起来,并在最后添加 .sql 扩展名,得到一个完整的备份文件路径。

继续向上查找$backupFileName的来源

image-20240304201330413

$backupFileName 的赋值过程首先将备份文件的目录路径与经过特定字符替换的文件名拼接起来,得到了备份文件的完整路径。

再次跟进拼接的变量$fileName

image-20240304201515345

fileName使用getRequest方法得到,

根据定义的类core\utils\Env,找到core\utils\Env文件,在文件内搜索getRequest方法

image-20240304201741730

$fileName只传了一个参数,所以只有变量key是可控的,同时变量type的值默认是“GP”,所以case选项只有G和P两个选择
当type=G的时候,变量var=request使用$request->getQuery($key, $defaultValue)方法获取特定键的值

image-20240304202121468

判断是否存在get方式得到的name,如果存在则返回,不存在返回默认值(空)
此时猜想getPost函数是判断是否存在post方式得到的name

另外

若要执行shell_exec函数,还需要满足method不等于multivol

image-20240304203939417

去网站查看数据备份功能

bp抓包将method的值,改了

filename改一下,打开计算机

image-20240304204752882

成功给打开

image-20240304204801794

image-20240304210006506

写入一句话木马

image-20240304205958373

靶场梭哈