2019强网杯upload

2019强网杯upload

写在前面的话:这题,搁着叠buff呢?

文件上传+反序列化

打开页面是熟悉的注册登录页面

注册再登录进去,给了个文件上传的口,上传个图片马,查看路径

在这里插入图片描述

一般这种都会有个源码泄露,有时候和SQL挂钩,有时候是反序列化

dirsearch扫目录

kali的dirsearch安装在另一篇笔记里有详细说明,这里就不再赘述。

在dirsearch目录下打开终端输入

python3 dirsearch -u URL -e* -t 20 -x 301,403,429,404,500,501
说明:
-e*  扫描网站所有脚本类型
-t 20 设置扫描的线程是20
-x 301,403,429,404,500,501 排除指定的网站状态码,用逗号隔开
一般有后台源码泄露的状态码是200

在根目录下扫出了www.tar.gz

下载(文件还挺大)

在这里插入图片描述

thinkphp框架

用vscode打开,tp5下,还存在.idea目录

.idea存放项目的配置信息,包括历史记录,版本控制信息等的一个目录

发现是thinkphp框架,一般核心文件在

application->web->controller

这里有四个php文件

在这里插入图片描述

在这里插入图片描述

反序列化

这里看到user的cookie进行了一个反序列化的操作。

首先访问大部分页面都会调用login_check的方法,先将传入的用户 Profile 反序列化,而后到数据库中检查相关信息是否一致。

Register.php里析构函数里如果注册就直接调用index(),也就是跳到主页。

在这里插入图片描述

在这里插入图片描述

Profile.php里有 _call _get 两个魔术方法,分别书写了在调用不可调用方法和不可调用成员变量时怎么做。_get 会直接从 except 里找,_call 会调用自身的 name 成员变量所指代的变量所指代的方法。

这两个魔术方法可以利用。

在这里插入图片描述

我是直接上传的png图片没有什么影响,如果上传其他类型的图片马会进行处理,强行把后缀名改成png。

在这里插入图片描述

我们的思路是,利用filename_tmp和filename把图片马解析为php文件,怎么才能解析呢,cookie不是可以反序列化嘛,可以把构造完的exp序列化编码后的传入cookie,再访问png文件就可以变成php文件了,再用蚁剑连。具体怎么构造呢,可以进入下面的逻辑,里面既有filename、filename_tmp,还能利用img

在这里插入图片描述

但是需要绕过上面两个判断,只要不赋值,不上传变量就行。

在这里插入图片描述

利用_get _call:except里['index'=>'img'](数组)实现一调用index变量就转到img变量,要利用img所在的逻辑只要ext存在就行,因为下面会调用update_img(),所以让img变量等于upload_img()函数,触发_call,正好是这三个逻辑所在的函数,成功顺理成章地调用了。

在这里插入图片描述

在这里插入图片描述

那如何调用index变量,让registed=false也就是registed不存在就可以进入析构函数所在的逻辑。

在这里插入图片描述

到这里基本就

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值