2012-04-15 96 views
-1
1. 

    ' union select 1, 'users (user, password) values (\'haxor\', 
      \'1337\') #', 2 # 

2. 

    ' union select 1, 'modules (plugin) values (\'if 
     (isset($_GET[\\\'cmd\\\'])) {passthru($_GET[\\\'cmd\\\']);}\') #', 2 
     # 
  • 那些代碼片斷在做什麼?
  • 如何防止他們在我的php文件中?
  • 什麼是1337?爲什麼有很多\?

回答

2

這些代碼是做什麼的?

那麼這種情況取決於情況,但從它的外觀來看,第一個代碼是試圖繞過登錄系統。第二個將允許黑客在服務器上執行命令並將輸出直接顯示回瀏覽器。

的文檔PHP的passthru()http://php.net/manual/en/function.passthru.php

我怎麼能阻止他們在我的PHP文件?

有很多方法可以防止SQL注入。最值得推薦的方法是使用PDO庫或MySQLi並採用準備好的語句。

什麼是1337?爲什麼有很多\?

從城市詞典(來源:http://www.urbandictionary.com/define.php?term=1337)兩者

哈克 「Sp33k」 爲萊特,或精英。起源於31337「eleet」,即黑客組織Dead Cow Cult使用的UDP端口,使用Back Orifice(一個臭名昭着的黑客程序)訪問Windows 95。

反斜槓用於轉義特殊字符。看看這個維基百科的文章,瞭解更多細節: http://en.wikipedia.org/wiki/Escape_character

+2

對一個匆忙拋棄的問題的好答案。 +1 – Nanne 2012-04-15 11:07:46

1

開始SQL注入的示例的主要部分是'開始。它改變你的服務器讀取的查詢。

清理所有用戶輸入非常重要。