攻防世界: easyphp

攻防世界: easyphp

上述就是服务端逻辑的源码展示。

因此这里主要的任务就是控制变量abc的值,使得key1key2都为真。

这里涉及到以下知识点:

  1. 科学计数的表示:例如6e7表示6×1076 \times 10^76×107 。

  2. substr函数的功能:substr(字符串, 开始索引, 长度)。其中开始索引为负数的时候表示从末尾开始数(-1是最后一个)。

  3. PHP语言的关联数组,他的一个简单的例子如下:

    php 复制代码
    $person = [
        "name" => "张三",
        "age" => 25,
        "city" => "北京"
    ];
    
    // 可以通过这种方式,与pyhon的字典通过键值对的形式访问相似
    echo $person["name"];  // "张三"
    echo $person["age"];   // 25
  4. PHP语言的隐式类型转换

    当PHP的让一个字符串与数字进行比较(==,>, < 等符号)的时候,会将字符串转换为数字。

  5. PHP语言的松散比较与严格比较

    • 松散比较(即==符号)

      当出现松散比较的时候,如果类型不相同,首先会进行类型的转换,然后再进行比较,比如: "1" == 0 就会转换为相当于python语言的 1==0(将字符串转换为数字)。

    • 严格比较(即===符号)

      这种比较需要类型和值都是一样的时候,结果才为True。

开始分析

  1. 如下图, 这里要求a的值大于6000000,且长度不超过3,因此我们可以使用科学计数的表示方式:6e7即可通过。

  2. 如下图,这里要求b变量的经过md5得hash算法后,最后6位得值是8b184b。

    • 第一想法是使用123456,1 等值通过在线得md5加密网站看看结果,发现并不是。
    • 第二个想法,我使用了常见得用户名(来自文件)来作为输入,来判断后面6位得结果是否是8b184b,跑完了常见的,发现不是。
    • 最后尝试从0到10000000进行枚举,查看是都有符合要求的数字

    其中测试的python代码如下:

    pyhton 复制代码
    import hashlib
    
    # path = "./file/simple-users.txt"
    # with open(path, "r") as f:
    #     for line in f.readlines():
    #         tmp = hashlib.md5(line.encode()).hexdigest()[-6:]
    #         # or tmp == '0b15af'
    #         if tmp == "8b184b":
    #             print(line)
    #             break
    
    
    for i in range(10000000):
        tmp = hashlib.md5(str(i).encode()).hexdigest()[-6:]
        if tmp == "8b184b":
            print(i)
            break
            
    # 输出的值为53724

    输出的值为53724

  3. 最后就是c变量的值了。从代码来看,c是一个json字符串转换而来。它会将{}这种类型转换为一个关联数组。

  • 在第一个if中,学要确保$c["m"]不是数字,却要大于2022,这里就涉及到前面说的隐式转换了。因此其值可以为"2023N"

  • 第二个if,需要确保$c["n"]是一个长度为2的数组,且数组的第0个元素依然是数组。那可以考虑这个值: [[],"DGJJ"]

  • 这里要求数组中含有DGGJ,同时又不含有DGGJ,这怎么办呢?如下图所示:

    这就需要用到前面的知识点了,松散比较和严格比较。array_search使用的是松散比较,因此可以考虑将数组的替换为:

    [[],0]这样在array_search的时候,会将DGGJ转换为数字,"DGGJ" == 0, 转换后的结果就是 0==0,因此能通过即包含又不包含DGGJ这个字符串。

综上,最后c的值为{"m":"2023N","n":[[],0]}

拿到flag

  1. 提交参数
  1. 得到结果

相关推荐
有浔则灵8 小时前
GORM钩子函数详解
网络·安全·web安全
Sagittarius_A*15 小时前
CSRF 跨站请求伪造:伪造请求攻击、绕过手段与底层防御
安全·web安全·csrf·dvwa
祁白_17 小时前
sqlmap工具
web安全·网络安全·sql注入·sqlmap
艺杯羹18 小时前
网络安全攻防演进:从单人砸门到AI博弈的五次战争
人工智能·安全·web安全·ddos·ip·ip欺骗
HackTwoHub18 小时前
等级保护现场测评系统重磅更新,支持 AI 接入,可录入全品类资产清单,自动化巡检核查,批量导出测评归档文件
运维·人工智能·安全·web安全·网络安全·自动化·系统安全
川石课堂软件测试18 小时前
安全测试|服务器安全加固方法
服务器·功能测试·测试工具·jmeter·mysql·web安全·单元测试
Sagittarius_A*19 小时前
Command Injection 命令注入漏洞:系统命令拼接缺陷与执行利用技术
网络·安全·web安全·dvwa·命令注入漏洞
Android洋芋20 小时前
漏洞挖掘与赏金攻略
网络·安全·web安全
Sagittarius_A*1 天前
Open HTTP Redirect 开放重定向漏洞:URL 跳转校验缺陷与绕过技术
网络·安全·web安全·http·dvwa·burp suite
鹿鸣天涯1 天前
kali 2026.2 2026年第二个版本发布-新增 9 款工具并优化虚拟机启动性能
安全·web安全·kali