点击题目链接,分析页面php代码,我们可以初步得到以下结论:
- 页面使用get请求数据,同时参数为num
- 页面num的值需要设置为114514
- 页面使用 ==进行比较,该方法为弱口令比较
- intval()转化后的值需要等于191810,否则执行die()函数,即终止脚本
第一种方法:使用弱口令绕过
弱口令比较的过程中,如果数字开头,会提取开头的数字,然后比较。如果开头是字符串,会转化为0,然后比较(===为强口令比较,会先判断类型,在比较值):
'123abc' == 123 TRUE
'bac123' == 123 FALSE
'abc123' == 0 TRUE
有了以上知识,我们就可以通过构造payload进行测试,首先num的值需要等于114514,查看结果
可以看到报错信息,由于intval(114514)的值不等于1919810,运行了die函数,输出 “一