buu做题笔记——[安洵杯 2019]easy_web

本文详细记录了解决[安洵杯 2019]easy_web挑战的过程。从源码分析入手,发现base64编码的文件名线索,通过两次解码得到十六进制字符串,并成功转化为555.png,进一步利用这个方法读取了index.php源码。挑战中还涉及了GET参数cmd的安全过滤和POST提交MD5值相等但字符串不同的技巧,最终找到并显示了flag。
摘要由CSDN通过智能技术生成

[安洵杯 2019]easy_web

在这里插入图片描述进入题目就是这样一个页面,先看下源码
在这里插入图片描述
这里有一个提示,这题应该跟md5有关,这时我注意到了URL

http://60c3d800-d438-4c23-87c2-dbee32a9e363.node3.buuoj.cn/index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd=

这个img参数后面应该是个编码后的文件名,然后源码里就会出现base64编码的文件内容
在这里插入图片描述将img参数的值解码试试

在这里插入图片描述经过两次base64解码过后,得到了如图所示的一串字符串。这里有一个小坑,因为前面提示有md5,所以我下意识认为这是md5加密。结果找了好几个网站都解不出来,然后我就仔细看了一下这个字符串,发现前面六个字符是353535,两两相同,感觉很熟悉,有点像十六进制,试试。
在这里插入图片描述
确实是十六进制,不过最后一位有点问题。但是问题不大,能猜出来是555.png。那么我们就用相同的加密方式加密index.php,然后包含一手。
在这里插入图片描述成功读到源码。

<?php
error_reporting(E_ALL || ~ E_NOTICE);
header('content-type:text/html;charset=utf-8');
$cmd = $_GET['cmd'];
if (!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值