2017-10-14 133 views
0

我新的SQL注入和我想問一些關於更新語句MySQL的注射用GET或POST

不問如何防止注入 ......我要求例如如何注入更新語句到SQL注入更新聲明)

如果我有一個名爲「用戶」和列id,Fname,Lname,Ip,性別,日期,簽名 表,我用它來更新

mysql_query("UPDATE users SET Fname='$fname', Lname ='".$_GET["lname"]."', Ip ='$ip' ,Sex ='sex' WHERE id='$id'") 

您是否可以注入來更新lname的「簽名」? 喜歡它是如何工作的?

edit.php?id=1&lname=Boris&lname=' , Signature = '123&ip=123&Sex=1 

(它不工作)

你可以參考我在哪裏可以在此閱讀?我試圖尋找SQL注入,但我找不到你怎麼可以更新語句內更新

+0

把它直,我可以讓這個users'從未存在過的 – Akintunde007

+3

可能的複製表' [我怎樣才能防止在SQL注入PHP?](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – Akintunde007

+0

感謝重播我不認爲它的重複.. 和你能給我例子你怎麼能「讓桌子永遠不存在」,請你能告訴我你怎麼能更新列喜歡簽名,它不在聲明中,所以你怎麼能更新索姆如果它不在聲明中呢? 再次感謝! 編輯:我沒有問如何防止SQL注入..我想學習如何注入更新聲明工作 – boris

回答

1

由於您直接將輸入注入到查詢中而沒有任何轉義或驗證,您基本上可以讓用戶在您的數據庫中運行任何他想要的查詢。

例如,在這種情況下,假設您只想讓他編輯他的名字。您的查詢看起來是這樣的:

"UPDATE users SET Fname = '" . $_GET["fname"] . "' WHERE id = ".$_GET["id"]; 

如果他的投入是這樣的: id=1&fname=John SQL運行以下查詢:

UPDATE users SET Fname = 'John' WHERE id = 1 

但是,假設他的投入是這樣的: id=1&fname=John', email='aaa 然後SQL將運行以下查詢:

UPDATE users SET Fname = 'John', email='aaa' WHERE id = 1 

剛剛發生的事情是,即使你沒有讓他更新他的電子郵件。

的幾個注意事項:

  • 上面的例子是破壞性最小的例子,我與SQL注入的思維, 攻擊者可以做更多的惡意行爲,包括 黑客攻擊你的服務器。
  • 即使它是一個無辜的用戶,假設他輸入De'wayne來更改他的名字,您的查詢將失敗。
  • 你讓你的用戶更新他的細節id來自輸入 - BAD的想法,他可以選擇他想要的任何id,這意味着他有權更新所有用戶數據。
  • 你不應該使用GET方法來更新/插入東西。只使用GET來獲取東西。
+0

夥計我不要使用這個陳述真實... – boris

+0

@boris好吧,沒有回答你的問題嗎?如果不是,你的問題是什麼? – HtmHell

+0

是的,但是您的注入將無法在「$ query =」UPDATE users SET Fname ='「。$ _ GET [」fname「]。」',Lname ='「。$ _ GET [」lname「]。」' ,'ip ='「。$ _ GET [」ip「]。」',Sex ='「。$ _ GET [」sex「]。」'WHERE id =「。$ _ GET [id]; 」only you on you statement。 。例如,如果我的語句是「mysql_query(」UPDATE users SET Fname ='$ fname',Lname ='「。$ _ GET [」lname「]。」',Ip ='$ ip',Sex ='sex'WHERE id ='$ id'「) 」你的注射不起作用 – boris

-2

我認爲這將有助於你

改變你的MySQL這樣的腳本和這個PHP V5.6

mysql_query("UPDATE users SET Fname='$fname', Lname ='$lname', Ip ='$ip' ,Sex ='sex' WHERE id='$id'") 
+0

我沒有問如何防止它..我要求例如如何注入更新語句到sql注入更新語句 – boris

+0

你想編輯和刪除php mysq?l –

+0

是的...在生病後我學會了什麼我生病請問如何編輯和刪除php mysql 但現在沒有.. 我只想知道「如何注入更新語句更新語句」 – boris

-1

你是非常正確的,你只是忘記了URL編碼,它看起來像:

edit.php?id=1&lname=Boris&lname=Solnich&ip=123&Sex=1%27%20%2C%20Signature%20%3D%20%27123 
+1

你的回答是有誤導性的,他可能認爲SQL注入在他的情況下是不可能的。 – HtmHell