CTF萌新赛easy_web解题思路分享
2021-11-24 14:30:13 Author: www.freebuf.com(查看原文) 阅读量:29 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

前言心得总结

此题目考点是对PHP的部分基本知识的掌握情况,以及binwalk或foremost分解工具的熟练使用。

一、首先查看题目,出题页面如下

根据上图hint的提示内容,此题目的Flag应隐藏在图片中,最终需要从图片中拿到Flag。

分析过程

此题目的Flag应隐藏在图片中,最终需要从图片中拿到Flag。得到图片的前提条件是通过post方式传入合适的参数,这里需要理解PHP的相关基础知识。

三、解题过程和结果

1、查看PHP后台逻辑内容,具体如下图:

分析逻辑以后,发现最终打印出flag.php需满足如下条件:

(1)webp的MD5值为e10adc3949ba59abbe56e057f20f883e,后面经过MD5值查询逆运算,算出webp是123456。

(2)a与b的MD5值相等,但是a与b不相同,这里考到了在PHP中数组MD5都是NULL,所以将a和b赋予不相同的数组即可。

(3)当前PHP_INT_MAX 官方最大值为32平台:2147483647,64平台:9223372036854775807,所以c是比最大值小1的数,测试后c为9223372036854775806。

2、知道a、b、c和webp以后,发送请求即可获得flag图片,发送代码如下:

得到图片backImg.jpg

3、根据一开始题目的提示,图片中应该会隐藏flag,所以考虑到使用binwalk或foremost解压缩图片backImg.jpg

本人是在本地的linux系统上安装了binwalk

首先直接wget得到图片,代码如下:

wget http://47.106.172.29:2221/backImg.jpg

然后用binwalk解压图片,代码如下:

binwalk -e backImg.jpg

解压后,得到173A0C.zip,解压173A0C.zip后,就得到含有flag的txt,代码如下:

unzip 173A0C.zip

解压后本地会有trueflag.txt文件,打开后即可获得flag


文章来源: https://www.freebuf.com/articles/web/305772.html
如有侵权请联系:admin#unsafe.sh