0CTF-2016-piapiapia(PHP反序列化字符逃逸)

本文详细分析了0CTF-2016-piapiapia题目中的PHP反序列化字符逃逸漏洞,通过控制特定输入绕过安全检查,实现对敏感文件config.php的读取,最终获取flag。

0CTF-2016-piapiapia(PHP反序列化字符逃逸)


0x01 前言

开学果然是对更新博客没得想法,趁着闲工夫,做了一下这个题,之前XCTF新春赛也出现了PHP反序列化逃逸,不过没做出来。。tcl,直接看题吧。

0x02 正文

这个题直接给你登录页面了,F12没有发现,sql注入也不太像,一般出现登录页面都会有注册页面,字典跑起来,发现有regester.phpconfig.phpwww.zip,居然泄露了www.zip,话不多说下下来直接审计吧。

profile.php

<?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']));//-----point------
?>
<!DOCTYPE html>
<html>
<head>
   <title>Profile</title>
   <link href="static/bootstrap.min.css" rel="stylesheet">
   <script src="static/jquery.min.js"></script>
   <script src="static/bootstrap.min.js"></script>
</head>
<body>
	<div class="container" style="margin-top:100px">  
		<img src="data:image/gif;base64,<?php echo $photo; ?>" class="img-memeda " style="width:180px;margin:0px auto;">
		<h3>Hi <?php echo $nickname;?></h3>
		<label>Phone: <?php echo $phone;?></label>
		<label>Email: <?php echo $email;?></label>
	</div>
</body>
</html>
<?php
	}
?>

class.php

<?php
require('config.php');

class user extends mysql{
   
   
	private $table = 'users';

	public function is_exists($username) {
   
   
		$username = parent::filter($username);

		$where = "username = 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值