CTF萌新赛easy_web解题思路分享

2021-11-24 14:30:13 Author: www.freebuf.com 阅读量: 15 收藏

前言心得总结

此题目考点是对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




觉得文章还不错?,点我收藏



本站内容均来自网络,若有侵权,请与我们联系:buaq.net[#]pm.me