SQL注入2
分析源码
Logged in! Key: ntcf{**************}
"; } else { echo("Log in failure!
"); } } ?>分析一下思路 这个密码是通过post传进来的 然后你就会发现 如果说传进来的密码经过md5加密之后与数据库中找到的pw的相比之后比较大的话就会返回1如果比pw要小 那么就返回0
我们的目的就是要返回0
考虑到SQL语句的特殊性 那么就来看了
select pw from ctf where user="’$user’" 那么就可以看到 如果把注入语句进行改造 改成
select pw from crf where user = " ‘union select md5(2)#"
那么 因为user是空格 那么就会返回了后面的值 就是md5(2)的值 这个是32位嘛 和md5(pass)差不多
那么就返回了0 那么就同时存在了 所以只要在密码那里输入2 username那里输入’ union select md5(2)#把后面的注释掉就好了
那么就拿到flag啦