簡體   English   中英

mysql_query注入-替換返回的字段

[英]mysql_query inject - replace returned field

我試圖學習和理解mysql注入,我創建了演示案例。

SELECT ret_variable FROM data WHERE name = '".$name."' AND age = ".$age;

然后if(ret_variable == 2){something}但查詢最初返回1,我需要強制其輸出2

如何修改$age變量以設置ret_variable自定義輸出字段(僅在響應中)? 我用OR嘗試了幾種方法,但沒有驚慌。

除了學習,我看不到任何實際的應用。 我假設由於您知道代碼,因此您有權進行測試。 因此,讓我們一起去吧!

僅當數據庫中有行的ret_variable值為2並且您知道該行的名稱值時,才可以為ret_variable返回2。 例如,您可以輸入該名稱和以下內容來繞過年齡的正確值。

年齡AND ret_value = 2

這將創建以下查詢:

SELECT ret_variable FROM data WHERE name = 'John' AND age = age AND ret_value = 2;

mysql注入的原理是對查詢的這種操縱。 但是,除非數據庫中有一行包含ret_variable的該值,並且您可以以某種方式選擇此行,否則您不能強制返回該值。

如果您不知道名稱(或者沒有ret_variable為2的已知名稱記錄),則不可能。

由於AND運算符的優先級高於OR運算符,因此您無法操縱查詢以將ret_variable設為2。 這是因為名稱='?' 部分將永遠失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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