一. 简单的登录题
这道题确实一点都不简单,用到cbc字节翻转攻击等技术,具体可以参考这里
二、后台登录
这道题打开就是一个登录框,输入一个1,提示密码错误,查看源代码。
<!-- $password=$_POST['password'];
$sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5($password,true)."'";
$result=mysqli_query($link,$sql);
if(mysqli_num_rows($result)>0){
echo 'flag is :'.$flag;
}
else{
echo '密码错误!';
} -->
发现源码给的提示,这个的意思还是要对比数据库中的admin和password,但发现他的password用MD5加密了(这是为了防止你输入’"or 这些符号绕过验证password)
那么我们就想能不能弄一个MD5前的字符串,MD5加密后传上服务器被服务器解密之后,有’" or 这些符号。
这时发现url里的ffifdyop.php的ffifdyop是我们所要的字符串,这个字符串MD5incode后是:
276f722736c95d99e921722cf9ed621c
然后以上字符串再decode后是:'or’6
加到原来的语句中就是:
SELECT * FROM admin WHERE username = 'admin' and password = ''or'6<trash>'
成功绕