首页 > 编程语言 >PHP md5() 函数绕过

PHP md5() 函数绕过

时间:2022-12-14 17:11:17浏览次数:82  
标签:http 代码 点击 数组 绕过 PHP md5

题目链接

http://ctf.tidesec.com/challenges#%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1-112

点击查看代码
<?php
error_reporting(0);
include("flag.php");
highlight_file(__FILE__);
if (isset($_GET['username']) and isset($_GET['password'])) {
    if ($_GET['username'] == $_GET['password'])
        print 'Your password can not be your username.';
    else if (md5($_GET['username']) === md5($_GET['password']))
        die('Flag: '.$flag);
    else
        print 'Invalid password';
}
?>
题目分析

根据代码可知,打印出 flag 的条件是:
参数 username 和 password 的值不能相等,但它们的 MD5 需要相等
而 URL 是可以传递数组参数,如下所示,相当于提交一个 a[] = {1,2,3} 的数组:

点击查看代码
http://localhost/index.php?a[]=1&a[]=2&a[]=3

PHP 中的 MD5 是不能处理数组的,即 md5(a[]) == md5(b[]) == null,所以可构造如下链接得到结果:

点击查看代码
http://localhost/index.php?username[]=1&password[]=2

标签:http,代码,点击,数组,绕过,PHP,md5
From: https://www.cnblogs.com/F0x1tz/p/16982685.html

相关文章

  • PHP内容编辑后不立即生效处理
    用phpinfo()函数,查看PHP开启模块中是否包含ZendOpcache这类opcode缓存。如果有,那么打开php.ini查找下“opcache”,将opcache.revalidate_freq=60改为opcache.revalidate_f......
  • php
     顺便学习下Wampserver。开始用phpnow,后来用xampp,现在用phpstudy。强烈推荐php学习者使用phpstudy。但没有测试phpstudy和Wampserver。 Xampps在win下,更为优秀..   ......
  • php web 大文件上传源代码
    ​PHP用超级全局变量数组$_FILES来记录文件上传相关信息的。1.file_uploads=on/off 是否允许通过http方式上传文件2.max_execution_time=30 允许脚本最大执行时间......
  • windows 系统,PHP+Nginx 环境搭建
    本次选用各中间件的最新版本。Nginx-1.23.2+PHP8.2.0+Mysql8.0.31。先去各自官网下载windows对应的安装包备用。PHP安装解压安装包配置在解压的目录下复......
  • Apache 2 & PHP 8 errors All In One
    Apache2&PHP8errorsAllInOneerrorsYoudon‘thavepermissiontoaccessthisresource.❌http://www.webhacker.com/phpinfo.phphttp://www.webhacker.c......
  • thinkphp6 json(captcha())为空
    首先:composerrequiretopthink/think-captchav3.0.8  把这张图片下载,后缀名png改成zip,解压到:vendor/topthink ......
  • IIS 运行PHP 正常使用MYSQL 解决报错0x000000ff
    extension=php_mysql.dllextension=php_mysqli.dlldate.timezone=Asia/Shanghai注意:php.ini 下:extension_dir="D:\SoftWare\DEVPHP\php_5_3_13\ext"否则会报错......
  • 招商银行企银直连 招行云直连 国密SM2 SM4 PHP实现对接
    研究了好久好久,终于搞定了,参考了网上很多代码,网上所有的代码多多少少都有问题,要么是各种报错,要么是能签字不能验签,要么是有时候成功有时候失败。就截止2022.12.13日此时,网......
  • PHP 替换WORD模板 实现可直接打印的WORD
    有一款非常好用的开源东东:PHPWORD只要类似这样的语句,就能实现模板文件中的替换:$document->setValue('Value1',iconv('utf-8','GB2312//IGNORE','高尔夫1.6L舒适'));$doc......
  • 【Azure 应用服务】PHP应用部署在App Service for Linux环境中,上传文件大于1MB时,遇见
    问题描述在PHP项目部署在AppService后,上传文件如果大于1MB就会遇见413RequestEntityTooLarge的问题。 问题解决目前这个问题,首先需要分析应用所在的环境。在AppSe......