[0CTF-2016] piapiapia

这篇博客详细介绍了0CTF-2016中piapiapia挑战的解决过程,涉及源码泄露、PHP反序列化字符逃逸、过滤函数漏洞利用等内容。作者通过分析源码,发现config.php中的flag,并找到了可以注入的点,最终通过字符逃逸成功读取到flag。
摘要由CSDN通过智能技术生成

[0CTF-2016] piapiapia

PHP反序列化字符逃逸

1.www.zip源码泄露

试了下发现不太像sql注入,扫下目录发现www.zip泄露
最近好多题都是这种源码泄露,建议字典齐全一点,不然扫不出来真的难受

2.源码

源码还挺多
config.php里面看到有flag,最后目标应该就是读取到config里面的flag就可以了

$config[‘hostname’] = ‘127.0.0.1’;
$config[‘username’] = ‘root’;
$config[‘password’] = ‘’;
$config[‘database’] = ‘’;
$flag = ‘’;

接着找找config.php被谁include了
找到profile.php

require_once(‘class.php’);
if($_SESSION[‘username’] == null) {
die(‘Login First’);
}
$username = $_SESSION[‘username’];
$profile=$user->show_profile($username);
if($profile == null) {
header(‘Location: update.php’);
}
else {
$profile = unserialize($profile);
$phone = $profile[‘phone’];
$email = $profile[‘email’];
$nickname = $profile[‘nickname’];
$photo = base64_encode(file_get_contents($profile[‘photo’]));

file_get_content应该就是注入点了,不过前面进行了一次反序列化
但是不能直接修改photo这个变量,咱们可控的变量只有nickname
看到nickname传入时会进行过滤,看到过滤函数

public function filter($strin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值