BUUCTF WEB [安洵杯 2019]easy_web 1 WP

博客主要介绍了BUUCTF中一道WEB安全题目,涉及PHP代码审计和MD5碰撞。首先,通过分析发现img参数经过了base64及hex加密,利用此机制获取了index.php源码。接着,审计代码发现通过echo `$cmd`可实现RCE,但关键字被禁用,利用正则表达式解析漏洞绕过黑名单。最后,解决强相等比较问题,通过寻找MD5强碰撞字符串完成挑战。解题关键在于理解PHP解析和正则解析的交互,以及如何构造特殊字符串使MD5值相同。
摘要由CSDN通过智能技术生成

考点:
md5强碰撞
php代码审计–正则表达式

在这里插入图片描述F12看到md5 is funny~ ,猜测与md5算法有关。注意到<img>标签和url地址栏,img参数是文件名的某种加密后的,将读取到的文件内容base64加密之后,输出到img标签中。
这个时候,要想办法知道img参数是怎么加密的,查看wp之后,发现后端会对传进去的img参数先进行两次base64解密,再进行一次hex解密。所以我们在payload时要先进行一次hex加密,再进行两次base64加密
同理然后读取一下index.php,再base64解密
payload:?img=TmprMlpUWTBOalUzT0RKbE56QTJPRGN3&cmd=

在这里插入图片描述base64解密之后,index.php的源码

<?php
error_reporting(E_ALL || ~ E_NOTICE);
header('content-type:text/html;charset=utf-8');
$cmd = $_GET['cmd'];
if (!isset($_GET['img']) || !isset($_GET['cmd'])) 
    header('Refresh:0;url=./index.php?img=TXpVek5UTTFNbVUzTURabE5qYz0&cmd&
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值