解题链接
思路
又是代码审计题
首先ereg函数就是限定你输入框内的值只能是字母和数字,然后里面else if要求输入参数的长度要小于8并且这个参数要大于9999999(这不自相矛盾吗.....)。最后如果要输出flag还要求参数中包含有*-*,这不是又跟“只能包含字母数字”这个条件矛盾吗
先一个一个来吧,首先要求参数的长度小于8,并且大于9999999,可以用科学记数法,1e8以上就行。
然后是要求包含*-*,这个可以利用ereg的一个漏洞就是00截断,当传入的参数为1e9%00###,因为遇到了%00就会导致后面的###不会进行ereg函数的判断。
所以输入1e9%00*-*
flag还是没出来,但是发现地址栏中参数并不是我们填入的,%00中间被加入了25,坑真是多啊.....,直接在URL里面拼参数好了
答案
CTF{Ch3ck_anD_Ch3ck}