2015-07-28 52 views
3

我正在查看日誌並發現了sql注入。看起來它很好用,但我不太明白它是如何工作的。我試圖通過他們提交的表單提交,但沒有任何反應。SQL注入嘗試,它是如何工作的

注入字符串是:

(select(0)from(select(sleep(0)))v)/*''+(select(0)from(select(sleep(0)))v)+''"+(select(0)from(select(sleep(0)))v)+"*/ 

想不通他們是如何注入它。從我所知道的事情來看,並沒有影響到服務器。他們沒有得到任何數據。但我仍然想知道他們是如何使它工作的。

+2

不知道他們在做什麼,而是從什麼日誌中得到這個?也許他們只是用這個失敗的SQL注入嘗試。如果您可以提供執行此操作的代碼,我們可以查看它是否存在漏洞。 – Bv202

+1

不知道,但這似乎相關:http://www.sqlinjection.net/time-based/ – Jonathan

+0

你使用什麼數據庫?MySql? –

回答

4

這是一個漏洞檢查。這是找出您的服務器是否容易受到SQL注入攻擊的最簡單和最安全的方法之一 - 更重要的是,它不需要任何潛在攻擊者的注意!您可以使用像這樣的方法自動測試網站的SQL注入漏洞 - 在這種情況下,這意味着潛在的攻擊者可以運行任何類型的查詢或命令,您似乎沒有任何檢查。不用說,這是不好的。

你應該認爲你的服務器已經被破壞 - 現在可能在某人的名單上,等待進一步的利用。如果真正的修復需要一些時間,則儘快修復此問題,並理想地完全阻止該功能。

這背後的想法是,一個易受攻擊的服務器會對sleep參數的不同值的查詢做出不同的迴應 - 這意味着它很容易自動完成所有可能的輸入(不要忘記,即使隱藏字段和下拉列表可以隨意更改)並查明是否有這些漏洞。當這項工作起作用時,您可以直接插入惡意查詢/命令,或者繼續使用sleep直接找出信息 - 當沒有數據可以通過修改易受攻擊的查詢顯示在外部時特別有用。通過一系列是 - 否的問題(基於簡單的if(whatever, sleep(5), 0)),您可以確定足夠的壓力以進一步壓制攻擊。