题目入口:http://web.jarvisoj.com:32772/
首先先F12看一下有没有php可以注入,然后没有发现注入点,但是发现了http header里面有hint。
1 | Hint: "select * from `admin` where password='".md5($pass,true)."'" |
那么这道题突破点只能是找到密码了。
md5($pass,true) 是将pass转化为md5,然后在转化为字符串
如果存在某一个md5转为hex然后再转化为字符串,且字符串= or 1 的条件,那么就可以得到flag了
你们可以写算法强行爆破出一种情况。
这里提供一个字符串: ffifdyop
输入这个字符串得到flag
总结: 对于php和数据库来说,中间过程,即md5($pass,true),是存在危险性的,md5的保存方式也不一定安全。
提示: md5(string,raw) 当raw=true时,返回是将string转化为md5之后再转化为hex,再转化为字符串。如以下例子
1 | content: ffifdyop |
所以raw参数很重要,且 sql语句中,
1 | or 数据 |
好像都是当成立处理,即为真
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 咲夜南梦's 博客!
评论