【BUUCTF】[极客大挑战 2019] PHP Writeup
0x00 考点
目录扫描
源码泄露
反序列化
0x01 解题
dirsearch
-u 指定url
-e 指定网站语言
-w 可以加上自己的字典(加上路径)
-r 递归跑(查到一个目录后,在目录后重复跑,很慢,不建议用)
python3 dirsearch.py -u http://26e0c1d7-d98e-4a34-9ffe-901887297fb5.node3.buuoj.cn/ -e php

御剑也行

不要扫太快

/www.zip

index.php

GET方式传入一个select参数,再反序列化
<?php
include 'class.php';
$select = $_GET['select'];
$res=unserialize(@$select);
?>
包含了flag.php,所以要先出入一个序列化的参数
class.php
<?php
include 'flag.php';
error_reporting(0);
class Name{
private $username = 'nonono';
private $password = 'yesyes';
public function __construct($username,$password){
$this->username = $username;
$this->password = $password;
}
function __wakeup(){
$this->username = 'guest';
}
function __destruct(){
if ($this->password != 100) {
echo "</br>NO!!!hacker!!!</br>";
echo "You name is: ";
echo $this->username;echo "</br>";

本文详细解析了PHP反序列化过程中的安全漏洞,包括目录扫描、源码泄露及如何利用__wakeup()方法绕过安全检查获取flag。通过调整序列化字符串中的属性数量,成功跳过__wakeup()执行,最终实现对私有属性的访问。
最低0.47元/天 解锁文章
1275

被折叠的 条评论
为什么被折叠?



