ctfshow-WEB-web5

ctf.show WEB模块第5关需要传递两个参数,一个字符串,一个数字,并且两个参数的md5值必须相同,我们可以利用md5的0e漏洞进行绕过

0e绕过是指:0e开头的字符串在参与弱类型比较时,会被当做科学计数法,结果转换为0;我们只要传入两个md5值是以0e开头的参数,即可绕过md5加密,夺取flag

 ctfshow-WEB-web5_第1张图片

 页面中展示了部分源码,从源码中我们可以得知,想要夺旗需要通过GET请求传递两个参数v1和v2,并且参数v1必须是纯字母字符串,参数v2必须是数字或者数字字符串,并且两个参数的md5值必须相等

  • ctype_alpha()函数用于检测字符串中是否仅包含字母,是则返回true,否则返回false
  • is_numeric()函数用于检测变量是否为数字或数字字符串,是则返回true,否则返回false

 ctfshow-WEB-web5_第2张图片

 

这里我们可以使用MD5的0e绕过方式,输入一下payload

?v1=QNKCDZO&v2=240610708

QNKCDZO 的md5值为 0e830400451993494058024219903391

240610708 的md5值为 0e462097431906509019562988736854

分别满足纯字母和数字字符串,并且md5值以0e开头,而0e开头的字符串参与比较(==)时,会转化为0,也就是 0==0,返回true使if判断成立,从而输出flag

 

将内容全部复制到输入框中提交flag,即可过关

ctfshow{771fc204-2896-4c47-89bd-62bc060d33de}

你可能感兴趣的:(通关教程,网络安全,渗透测试)