首先看到的是代码
代码中打红框的一段是要重点关注的
1、 GET方式,分别将收到的v1 v2 赋值给v1 v2
2、 If判断 isset判断是都有值,变量是否设置值
3、 第二个if是判断v1的值是不是md5,ctype_alpha 判断变量是不是有英文字母,因为md5肯定是有英文字母的
4、 第三个if是判断v2的值是不是纯数字
5、 第四个if用于判断v1的值是不是等于v2 ,在md5中0e开头的值,默认是相等的,v1是字符 v2是数字,可以理解成md5碰撞
举个例子 QNKCDZO 和 240610708 , 前文提到在md5中0e开头的值,默认是相等的,
这两个值的md5值开头都是0e,
==是比较运算,它不会去检查条件式的表达式的类型
===是恒等,它会检查查表达式的值与类型是否相等。
接下来构造Payload
http://c39c0e43-93eb-4ef0-b69e-a5af741523e4.challenge.ctf.show:8080/?v1=QNKCDZO&v2=240610708
然后flag就有了