攻防世界-web-easyphp

1. 题目描述

打开链接,可以看到如下代码
在这里插入图片描述

2. 思路分析

代码都给出来了,接下来就是理解代码的含义了,从代码中不难发现,总共传入三个参数a,b,c,分别需要满足以下条件:
2.1 a的长度小于等于3,但是转换成int后需要大于6000000
2.2 对b计算md5值,md5的一部分为’8b184b’
2.3 c是一个json对象,其中c[‘m’] 不是数值类型且大于2022,c[‘n’]是一个数组,长度为2,c[‘n’]中第一个元素是一个数组类型,且需要满足array_search能够查找到"DGGJ"这个字符串,但是又不能等于"DGGJ"这个字符串。
(参考https://blog.csdn.net/weixin_46906325/article/details/127154789)
第一个条件科学计数法即可满足,a=1e9
第二个条件除了爆破没啥好办法,这里感觉条件不够友好,应该有个提示限制必须是整数,那么就容易爆破,结果应该是b=53724
第三个条件比较复杂了,主要考察了php中的字符串和整数的比较(比如1a和一个整数进行比较,会转换成1;a1和整数进行比较,由于第一个位置是a,非整数,php规定其值为0),根据这个比较规则,c[‘m’]可以等于2023a,至于c[‘n’],array_search本身也是一个比较操作,查找"DGGJ"时相当于和0进行比较,因此c[‘n’][1] = 0, c[‘n’][0]随便一个数组就行

3. 解题过程

a,b,c分别设置为以下的值,然后作为参数放入到请求中
a=1e9
b=53724
c={“m”:“2023a”,“n”:[[“xx”], 0]}
在这里插入图片描述
最终的flag为cyberpeace{68b6cb01e9ff453586488f24d9706293}

4. 总结
本题综合性比较强,三个条件考察三个知识点,一个是科学计数法,一个是md5爆破,一个是php比较绕过,都是常见的知识点,非常值得练习

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值