BJDCTF2020-EasyMD5-Web
目录
0x01 md5注入
打开网页只给出这样一个输入框:
这里随便输入密码,发现网页GET传参password,但是尝试SQL注入无果。
于是使用Brupsuite尝试抓取相应包,发现提示:
考虑如下sql语句
|
|
于是尝试MD5下的sql注入。也就是想办法找到一个字符串,它的md5值转化为字符串(md5函数的第二个参数是true,则将16进制的哈希结果转化为字符串格式)可以闭合sql语句(也就是password=‘‘or’xxx’)并且恒为Ture。
这里提供一个别人构造好的字符串:ffifdyop
|
|
输入结果为
|
|
‘or’可以实现闭合。
输入ffifdyop,跳转至下一个网页。
0x02 md5判断绕过
查看网页源码发现提示:
根据之前的文章:PHP中数组绕过的一些函数 | AlexanderZ.Tang (alextang.top)可知,当md5的第一个参数是数组时会返回null,而null==null,因此答案就是传入两个数组(注意这两个数组的值不能相同)。
|
|
0x03 POST传值
和上一节一模一样,只不过这次使用POST传递参数。payload将参数名字改一下就行。
|
|
得到结果
0x04 总结
这题的关键在于第一问,这个常用的md5万能密码应该记住。