『壹』 什麼是sql盲注
就是用SQL查詢語句去猜解表名、欄位、數據等。
盲注和普通的SQL注入原理是一樣的,不同在哪裡?
普通注入是會顯示一些錯誤信息在頁面上給攻擊者判斷,也就是說它會有多種情況,從而方便攻擊者。
而盲注則是只有兩種情況,即TRUE和FALSE,這樣說並不是很准確,因為SQL查詢無非就這兩種情況,應該說是盲注的時候你只能得到一個正常的頁面或者是什麼頁面的不存在,甚至你在查詢表的記錄過程也不會有顯示。
SQL盲注是一種SQL注入漏洞,攻擊者可以操縱SQL語句,應用會針對真假條件返回不同的值。但是攻擊者無法檢索查詢結果。
由於SQL盲注漏洞非常耗時且需要向Web服務發送很多請求,因而要想利用該漏洞,就需要採用自動的技術。盲注用工具很難進行注入效果仍然不大理想,所以要重視手工注入技巧。
盲注是不能通過直接顯示的途徑來獲取資料庫數據的方法。在盲注中,攻擊者根據其返回頁面的不同來判斷信息(可能是頁面內容的不同,也可以是響應時間不同)。一般情況下,盲注可分為三類。
Booleanbase
Timebase
Errorbase
『貳』 [高危]SQL注入漏洞(盲注)
意思是不是說 strSQL = "select top 1 * from nts_Hr" 沒有where條件限制呢?是不是id是空的時候也能查到記錄 360就認為是漏洞了?
『叄』 部分sql注入總結
本人ctf選手一名,在最近做練習時遇到了一些sql注入的題目,但是sql注入一直是我的弱項之一,所以寫一篇總結記錄一下最近學到的一些sql注入漏洞的利用。
在可以聯合查詢的題目中,一般會將資料庫查詢的數據回顯到首頁面中,這是聯合注入的前提。
適用於有回顯同時資料庫軟體版本是5.0以上的MYSQL資料庫,因為MYSQL會有一個系統資料庫information_schema, information_schema 用於存儲資料庫元數據(關於數據的數據),例如資料庫名、表名、列的數據類型、訪問許可權等
聯合注入的過程:
判斷注入點可以用and 1=1/and 1=2用於判斷注入點
當注入類型為數字型時返回頁面會不同,但都能正常執行。
sql注入通常為數字型注入和字元型注入:
1、數字型注入
數字型語句:
在這種情況下直接使用and 1=1/and 1=2是都可以正常執行的但是返回的界面是不一樣的
2、字元型注入
字元型語句:
字元型語句輸入我們的輸入會被一對單引號或這雙引號閉合起來。
所以如果我們同樣輸入and 1=1/and 1=2會發現回顯畫面是並無不同的。
在我們傳入and 1=1/and 1=2時語句變為
傳入的東西變成了字元串並不會被當做命令。
所以字元型的測試方法最簡單的就是加上單引號 ' ,出現報錯。
加上注釋符--後正常回顯界面。
這里還有的點就是sql語句的閉合也是有時候不同的,下面是一些常見的
這一步可以用到order by函數,order by 函數是對MySQL中查詢結果按照指定欄位名進行排序,除了指定字 段名還可以指定欄位的欄位進行排序,第一個查詢欄位為1,第二個為2,依次類推,所以可以利用order by就可以判斷列數。
以字元型注入為例:
在列數存在時會正常回顯
但是列數不存在時就會報錯
這步就說明了為什麼是聯合注入了,用到了UNION,UNION的作用是將兩個select查詢結果合並
但是程序在展示數據的時候通常只會取結果集的第一行數據,這就讓聯合注入有了利用的點。
當我們查詢的第一行是不存在的時候就會回顯第二行給我們。
講查詢的數據置為-1,那第一行的數據為空,第二行自然就變為了第一行
在這個基礎上進行注入
可以發現2,3都為可以利用的顯示點。
和前面一樣利用union select,加上group_concat()一次性顯示。
現在非常多的Web程序沒有正常的錯誤回顯,這樣就需要我們利用報錯注入的方式來進行SQL注入了
報錯注入的利用步驟和聯合注入一致,只是利用函數不同。
以updatexml為例。
UpdateXML(xml_target, xpath_expr, new_xml)
xml_target: 需要操作的xml片段
xpath_expr: 需要更新的xml路徑(Xpath格式)
new_xml: 更新後的內容
此函數用來更新選定XML片段的內容,將XML標記的給定片段的單個部分替換為 xml_target 新的XML片段 new_xml ,然後返回更改的XML。xml_target替換的部分 與xpath_expr 用戶提供的XPath表達式匹配。
這個函數當xpath路徑錯誤時就會報錯,而且會將路徑內容返回,這就能在報錯內容中看到我們想要的內容。
而且以~開頭的內容不是xml格式的語法,那就可以用concat函數拼接~使其報錯,當然只要是不符合格式的都可以使其報錯。
[極客大挑戰 2019]HardSQL
登錄界面嘗試注入,測試後發現是單引號字元型注入,且對union和空格進行了過濾,不能用到聯合注入,但是有錯誤信息回顯,說明可以使用報錯注入。
利用updatexml函數的報錯原理進行注入在路徑處利用concat函數拼接~和我們的注入語句
發現xpath錯誤並執行sql語句將錯誤返回。
在進行爆表這一步發現了等號也被過濾,但是可以用到like代替等號。
爆欄位
爆數據
這里就出現了問題flag是不完整的,因為updatexml能查詢字元串的最大長度為32,所以這里要用到left函數和right函數進行讀取
報錯注入有很多函數可以用不止updatexml一種,以下三種也是常用函數:
堆疊注入就是多條語句一同執行。
原理就是mysql_multi_query() 支持多條sql語句同時執行,用;分隔,成堆的執行sql語句。
比如
在許可權足夠的情況下甚至可以對資料庫進行增刪改查。但是堆疊注入的限制是很大的。但是與union聯合執行不同的是它可以同時執行無數條語句而且是任何sql語句。而union執行的語句是有限的。
[強網杯 2019]隨便注
判斷完注入類型後嘗試聯合注入,發現select被過濾,且正則不區分大小寫過濾。
那麼就用堆疊注入,使用show就可以不用select了。
接下去獲取表信息和欄位信息
那一串數字十分可疑大概率flag就在裡面,查看一下
這里的表名要加上反單引號,是資料庫的引用符。
發現flag,但是沒辦法直接讀取。再讀取words,發現裡面有個id欄位,猜測資料庫語句為
結合1'or 1=1#可以讀取全部數據可以利用改名的方法把修改1919810931114514為words,flag修改為id,就可以把flag讀取了。
最終payload:
盲注需要掌握的幾個函數
在網頁屏蔽了錯誤信息時就只能通過網頁返回True或者False判斷,本質上是一種暴力破解,這就是布爾盲注的利用點。
首先,判斷注入點和注入類型是一樣的。
但是盲注沒有判斷列數這一步和判斷顯示位這兩步,這是和可回顯注入的不同。
判斷完注入類型後就要判斷資料庫的長度,這里就用到了length函數。
以[WUSTCTF2020]顏值成績查詢為例
輸入參數後,發現url處有個get傳入的stunum
然後用到length函數測試是否有注入點。
發現頁面有明顯變化
將傳入變為
頁面回顯此學生不存在
那麼就可以得出資料庫名長度為3
測試發現過濾了空格
然後就是要查資料庫名了,這里有兩種方法
一、只用substr函數,直接對比
這種方法在寫腳本時可以用於直接遍歷。
二、加上ascii函數
這個payload在寫腳本時直接遍歷同樣可以,也可用於二分法查找,二分法速度更快。
接下來的步驟就和聯合注入一樣,只不過使用substr函數一個一個截取字元逐個判斷。但是這種盲注手工一個一個注十分麻煩所以要用到腳本。
直接遍歷腳本
二分法腳本
時間盲注用於代碼存在sql注入漏洞,然而頁面既不會回顯數據,也不會回顯錯誤信息
語句執行後也不提示真假,我們不能通過頁面的內容來判斷
所以有布爾盲注就必有時間盲注,但有時間盲注不一定有布爾盲注
時間盲注主要是利用sleep函數讓網頁的響應時間不同從而實現注入。
sql-lab-less8:
無論輸入什麼都只會回顯一個you are in...,這就是時間盲注的特點。
當正常輸入?id=1時時間為11毫秒
判斷為單引號字元型注入後,插入sleep語句
明顯發現響應時間為3053毫秒。
利用時間的不同就可以利用腳本跑出資料庫,後續步驟和布爾盲注一致。
爆庫
爆表
爆欄位
腳本
在進行SQL注入時,發現union,and,or被完全過濾掉了,就可以考慮使用異或注入
什麼是異或呢
異或是一種邏輯運算,運演算法則簡言之就是:兩個條件相同(同真或同假)即為假(0),兩個條件不同即為真(1),null與任何條件做異或運算都為null,如果從數學的角度理解就是,空集與任何集合的交集都為空
即 1^1=0,0^0=0,1^0=1
利用這個原理可以在union,and,or都被過濾的情況下實現注入
[極客大挑戰 2019]FinalSQL
給了五個選項但是都沒什麼用,在點擊後都會在url處出現?id。
而且union,and,or都被過濾
測試發現?id=1^1會報錯
但是?id=1^0會返回?id=1的頁面,這就是前面說的原理,當1^0時是等於1的所以返回?id=1的頁面。
根據原理寫出payload,進而寫出腳本。
爆庫
爆表
爆欄位
據此可以寫出基於異或的布爾盲注腳本
實驗推薦:課程:SQL注入初級(合天網安實驗室)
『肆』 SQL注入攻擊的種類和防範手段有哪些
暈,這不是C#考題嗎。
SQL注入攻擊的種類
知彼知己,方可取勝。首先要清楚SQL注入攻擊有哪些種類。
1.沒有正確過濾轉義字元
在用戶的輸入沒有為轉義字元過濾時,就會發生這種形式的注入式攻擊,它會被傳遞給一個SQL語句。這樣就會導致應用程序的終端用戶對資料庫上的語句實施操縱。比方說,下面的這行代碼就會演示這種漏洞:
statement := "SELECT * FROM users WHERE name = '" + userName + "'; "
這種代碼的設計目的是將一個特定的用戶從其用戶表中取出,但是,如果用戶名被一個惡意的用戶用一種特定的方式偽造,這個語句所執行的操作可能就不僅僅是代碼的作者所期望的那樣了。例如,將用戶名變數(即username)設置為:
a' or 't'='t,此時原始語句發生了變化:
SELECT * FROM users WHERE name = 'a' OR 't'='t';
如果這種代碼被用於一個認證過程,那麼這個例子就能夠強迫選擇一個合法的用戶名,因為賦值't'='t永遠是正確的。
在一些SQL伺服器上,如在SQLServer中,任何一個SQL命令都可以通過這種方法被注入,包括執行多個語句。下面語句中的username的值將會導致刪除「users」表,又可以從「data」表中選擇所有的數據(實際上就是透露了每一個用戶的信息)。
a'; DROP TABLE users; SELECT * FROM data WHERE name LIKE '%
這就將最終的SQL語句變成下面這個樣子:
SELECT * FROM users WHERE name = 'a'; DROP TABLE users; SELECT * FROM DATA WHERE name LIKE '%';
其它的SQL執行不會將執行同樣查詢中的多個命令作為一項安全措施。這會防止攻擊者注入完全獨立的查詢,不過卻不會阻止攻擊者修改查詢。
2.Incorrect type handling
如果一個用戶提供的欄位並非一個強類型,或者沒有實施類型強制,就會發生這種形式的攻擊。當在一個SQL語句中使用一個數字欄位時,如果程序員沒有檢查用戶輸入的合法性(是否為數字型)就會發生這種攻擊。例如:
statement := "SELECT * FROM data WHERE id = " + a_variable + "; "
從這個語句可以看出,作者希望a_variable是一個與「id」欄位有關的數字。不過,如果終端用戶選擇一個字元串,就繞過了對轉義字元的需要。例 如,將a_variable設置為:1; DROP TABLE users,它會將「users」表從資料庫中刪除,SQL語句變成:SELECT * FROM DATA WHERE id = 1; DROP TABLE users;
3.資料庫伺服器中的漏洞
有時,資料庫伺服器軟體中也存在著漏洞,如MYSQL伺服器中mysql_real_escape_string()函數漏洞。這種漏洞允許一個攻擊者根據錯誤的統一字元編碼執行一次成功的SQL注入式攻擊。
4.盲目SQL注入式攻擊
當一個Web應用程序易於遭受攻擊而其結果對攻擊者卻不見時,就會發生所謂的盲目SQL注入式攻擊。有漏洞的網頁可能並不會顯示數據,而是根據注入到合法 語句中的邏輯語句的結果顯示不同的內容。這種攻擊相當耗時,因為必須為每一個獲得的位元組而精心構造一個新的語句。但是一旦漏洞的位置和目標信息的位置被確 立以後,一種稱為Absinthe的工具就可以使這種攻擊自動化。
5.條件響應
注意,有一種SQL注入迫使資料庫在一個普通的應用程序屏幕上計算一個邏輯語句的值:
SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=1
這會導致一個標準的面面,而語句
SELECT booktitle FROM booklist WHERE bookId = 'OOk14cd' AND 1=2在頁面易於受到SQL注入式攻擊時,它有可能給出一個不同的結果。如此這般的一次注入將會證明盲目的SQL注入是可能的,它會使攻擊者根據另外一個 表中的某欄位內容設計可以評判真偽的語句。
6.條件性差錯
如果WHERE語句為真,這種類型的盲目SQL注入會迫使資料庫評判一個引起錯誤的語句,從而導致一個SQL錯誤。例如:
SELECT 1/0 FROM users WHERE username='Ralph'。顯然,如果用戶Ralph存在的話,被零除將導致錯誤。
7.時間延誤
時間延誤是一種盲目的SQL注入,根據所注入的邏輯,它可以導致SQL引擎執行一個長隊列或者是一個時間延誤語句。攻擊者可以衡量頁面載入的時間,從而決定所注入的語句是否為真。
以上僅是對SQL攻擊的粗略分類。但從技術上講,如今的SQL注入攻擊者們在如何找出有漏洞的網站方面更加聰明,也更加全面了。出現了一些新型的SQL攻 擊手段。黑客們可以使用各種工具來加速漏洞的利用過程。我們不妨看看the Asprox Trojan這種木馬,它主要通過一個發布郵件的僵屍網路來傳播,其整個工作過程可以這樣描述:首先,通過受到控制的主機發送的垃圾郵件將此木馬安裝到電 腦上,然後,受到此木馬感染的電腦會下載一段二進制代碼,在其啟動時,它會使用搜索引擎搜索用微軟的ASP技術建立表單的、有漏洞的網站。搜索的結果就成 為SQL注入攻擊的靶子清單。接著,這個木馬會向這些站點發動SQL注入式攻擊,使有些網站受到控制、破壞。訪問這些受到控制和破壞的網站的用戶將會受到 欺騙,從另外一個站點下載一段惡意的JavaScript代碼。最後,這段代碼將用戶指引到第三個站點,這里有更多的惡意軟體,如竊取口令的木馬。
以前,我們經常警告或建議Web應用程序的程序員們對其代碼進行測試並打補丁,雖然SQL注入漏洞被發現和利用的機率並不太高。但近來攻擊者們越來越多地 發現並惡意地利用這些漏洞。因此,在部署其軟體之前,開發人員應當更加主動地測試其代碼,並在新的漏洞出現後立即對代碼打補丁。
防禦和檢查SQL注入的手段
1.使用參數化的過濾性語句
要防禦SQL注入,用戶的輸入就絕對不能直接被嵌入到SQL語句中。恰恰相反,用戶的輸入必須進行過濾,或者使用參數化的語句。參數化的語句使用參數而不 是將用戶輸入嵌入到語句中。在多數情況中,SQL語句就得以修正。然後,用戶輸入就被限於一個參數。下面是一個使用Java和JDBC API例子:
PreparedStatement prep = conn.prepareStatement("SELECT * FROM USERS WHERE PASSWORD=?");
prep.setString(1, pwd);
總體上講,有兩種方法可以保證應用程序不易受到SQL注入的攻擊,一是使用代碼復查,二是強迫使用參數化語句的。強迫使用參數化的語句意味著嵌入用戶輸入的SQL語句在運行時將被拒絕。不過,目前支持這種特性的並不多。如H2 資料庫引擎就支持。
2.還要避免使用解釋程序,因為這正是黑客們藉以執行非法命令的手段。
3.防範SQL注入,還要避免出現一些詳細的錯誤消息,因為黑客們可以利用這些消息。要使用一種標準的輸入確認機制來驗證所有的輸入數據的長度、類型、語句、企業規則等。
4.使用專業的漏洞掃描工具。但防禦SQL注入攻擊也是不夠的。攻擊者們目前正在自動搜索攻擊目標並實施攻擊。其技術甚至可以輕易地被應用於其它的Web 架構中的漏洞。企業應當投資於一些專業的漏洞掃描工具,如大名鼎鼎的Acunetix的Web漏洞掃描程序等。一個完善的漏洞掃描程序不同於網路掃描程 序,它專門查找網站上的SQL注入式漏洞。最新的漏洞掃描程序可以查找最新發現的漏洞。
5.最後一點,企業要在Web應用程序開發過程的所有階段實施代碼的安全檢查。首先,要在部署Web應用之前實施安全測試,這種措施的意義比以前更大、更深遠。企業還應當在部署之後用漏洞掃描工具和站點監視工具對網站進行測試。
Web安全拉警報已經響起,安全形式異常嚴峻,企業絕對不應當草率從事。安全重於泰山!
『伍』 如何用SQLMap進行SQL盲注測試
如何用SQLMap進行SQL盲注測試
SQL盲註:用SQL查詢語句去猜解表名、欄位、數據。
拿個簡單的查詢來說
select * from table where 條件='' or 1=1 --'
也就是在你的查詢參數中加入:' or 1=1 --
其他改、刪類似,注入的方式有很多種,以上只是最基本的一種。
『陸』 sql注入攻擊的原理
sql注入攻擊的原理:SQL 注入(SQLi)是一種可執行惡意 SQL 語句的注入攻擊。這些 SQL 語句可控制網站背後的資料庫服務。攻擊者可利用 SQL 漏洞繞過網站已有的安全措施。他們可繞過網站的身份認證和授權並訪問整個 SQL 資料庫的數據。他們也可利用 SQL 注入對數據進行增加、修改和刪除操作。
為了發起 SQL 注入攻擊,攻擊者首先需要在網站或應用程序中找到那些易受攻擊的用戶輸入。這些用戶輸入被有漏洞的網站或應用程序直接用於 SQL 查詢語句中。攻擊者可創建這些輸入內容。這些內容往往被稱為惡意載體,它們是攻擊過程中的關鍵部分。隨後攻擊者將內容發送出去,惡意的 SQL 語句便會在資料庫中被執行。
『柒』 關於SQL注入。
我還沒進公司時,網站平均15天被注入一次,我進公司以後,大力整改,至今3個月,未見被注入。
我告訴你我的方法。
總結起來就是:關鍵詞屏蔽或替換 + 參數法sql。
1.封裝一個類,用來將傳入的參數進行關鍵詞的屏蔽和替換(像ID之類的參數,可以屏蔽關鍵詞的就完全屏蔽,像textarea這樣不能完全屏蔽的,就把關鍵詞替換,如將半形的'替換成全形』。還要限制參數的字數(很重要)
2.將所有需要和資料庫打交道的地方全部進行參數化sql。
如將sql="select * from table where id='"+value+"'"
改sql="select * from table where id=@id"
寫一個類,裡面專門存放參數法sql的各種方法,雖然會麻煩一些,但是非常非常有效,可以杜絕絕大多數sql注入。
這樣,雙管其下,基本可以防止sql注入了
『捌』 sql盲注是萬能的嗎
不是。
盲注,開發人員不會把資料庫報錯信息顯示在前端頁面,這樣就使我們想要通過union注入或報錯注入的攻擊方式難以實現。當不顯示報錯信息的時候,我們還可以通過盲注的方式來對資料庫進行注入攻擊。盲注,顧名思義,就是在頁面沒有提供明顯信息的情況執行的注入方式。盲注又分為兩種,布爾型盲注和時間型盲注。
盲注技術是sql注入的一種,不過比一般的sql注入的危害更大。普通的sql注入大致可以通過在提交框中輸入單引號、雙引號和括弧等看網頁的返回內容來判斷,但有很多網站並不會將一些敏感數據顯示到前端,而它們仍然是存在sql注入漏洞的。那麼黑客面對這種不回顯的sql注入漏洞,也可以通過一些方法和技巧實現他們的目的,獲取到他們想要的一些信息,這個過程就稱為sql盲注。如果注入的成功與否,頁面的返回值會有差異的話,那麼可以調取函數做一些比較操作,通過觀察頁面的返回做布爾值的盲注,就是一個一個字元去比對去驗證。如果頁面完全沒有任何返回差異的話,也不是毫無辦法,可以做基於時間的盲注。
『玖』 網站檢測後顯示SQL注入漏洞(盲注),請高手提供解決辦法,謝謝
找專業做網站安全的公司來給你解決,國內最有名的安全公司也就綠盟和sinesafe!
建站一段時間後總能聽得到什麼什麼網站被掛馬,什麼網站被黑,被攻擊。好像入侵掛馬似乎是件很簡單的事情。其實,入侵不簡單,簡單的是你的網站的必要安全措施並未做好。
有條件建議找專業做網站安全的sine安全來做安全維護。
一:掛馬預防措施:
1、建議用戶通過ftp來上傳、維護網頁,盡量不安裝asp的上傳程序。
2、定期對網站進行安全的檢測,具體可以利用網上一些工具,如sinesafe網站掛馬檢測工具!
序,只要可以上傳文件的asp都要進行身份認證!
3、asp程序管理員的用戶名和密碼要有一定復雜性,不能過於簡單,還要注意定期更換。
4、到正規網站下載asp程序,下載後要對其資料庫名稱和存放路徑進行修改,資料庫文件名稱也要有一定復雜性。
5、要盡量保持程序是最新版本。
6、不要在網頁上加註後台管理程序登陸頁面的鏈接。
7、為防止程序有未知漏洞,可以在維護後刪除後台管理程序的登陸頁面,下次維護時再通過ftp上傳即可。
8、要時常備份資料庫等重要文件。
9、日常要多維護,並注意空間中是否有來歷不明的asp文件。記住:一分汗水,換一分安全!
10、一旦發現被入侵,除非自己能識別出所有木馬文件,否則要刪除所有文件。
11、對asp上傳程序的調用一定要進行身份認證,並只允許信任的人使用上傳程序。這其中包括各種新聞發布、商城及論壇程
二:掛馬恢復措施:
1.修改帳號密碼
不管是商業或不是,初始密碼多半都是admin。因此你接到網站程序第一件事情就是「修改帳號密碼」。帳號
密碼就不要在使用以前你習慣的,換點特別的。盡量將字母數字及符號一起。此外密碼最好超過15位。尚若你使用
SQL的話應該使用特別點的帳號密碼,不要在使用什麼什麼admin之類,否則很容易被入侵。
2.創建一個robots.txt
Robots能夠有效的防範利用搜索引擎竊取信息的駭客。
3.修改後台文件
第一步:修改後台里的驗證文件的名稱。
第二步:修改conn.asp,防止非法下載,也可對資料庫加密後在修改conn.asp。
第三步:修改ACESS資料庫名稱,越復雜越好,可以的話將數據所在目錄的換一下。
4.限制登陸後台IP
此方法是最有效的,每位虛擬主機用戶應該都有個功能。你的IP不固定的話就麻煩點每次改一下咯,安全第一嘛。
5.自定義404頁面及自定義傳送ASP錯誤信息
404能夠讓駭客批量查找你的後台一些重要文件及檢查網頁是否存在注入漏洞。
ASP錯誤嘛,可能會向不明來意者傳送對方想要的信息。
6.慎重選擇網站程序
注意一下網站程序是否本身存在漏洞,好壞你我心裡該有把秤。
7.謹慎上傳漏洞
據悉,上傳漏洞往往是最簡單也是最嚴重的,能夠讓黑客或駭客們輕松控制你的網站。
可以禁止上傳或著限制上傳的文件類型。不懂的話可以找專業做網站安全的sinesafe公司。
8. cookie 保護
登陸時盡量不要去訪問其他站點,以防止 cookie 泄密。切記退出時要點退出在關閉所有瀏覽器。
9.目錄許可權
請管理員設置好一些重要的目錄許可權,防止非正常的訪問。如不要給上傳目錄執行腳本許可權及不要給非上傳目錄給於寫入權。
10.自我測試
如今在網上黑客工具一籮筐,不防找一些來測試下你的網站是否OK。
11.例行維護
a.定期備份數據。最好每日備份一次,下載了備份文件後應該及時刪除主機上的備份文件。
b.定期更改資料庫的名字及管理員帳密。
c.借WEB或FTP管理,查看所有目錄體積,最後修改時間以及文件數,檢查是文件是否有異常,以及查看是否有異常的賬號。
網站被掛馬一般都是網站程序存在漏洞或者伺服器安全性能不達標被不法黑客入侵攻擊而掛馬的。
網站被掛馬是普遍存在現象然而也是每一個網站運營者的心腹之患。
您是否因為網站和伺服器天天被入侵掛馬等問題也曾有過想放棄的想法呢,您否也因為不太了解網站技術的問題而耽誤了網站的運營,您是否也因為精心運營的網站反反復復被一些無聊的黑客入侵掛馬感到徬彷且很無耐。有條件建議找專業做網站安全的sine安全來做安全維護。
『拾』 SQL注入哪些工具最有效
SQL Power Injector是一款在.Net 1.1中創建的應用程序,可幫助滲透測試人員在網頁上查找和利用SQL注入。
特徵
支持Windows,Unix和Linux操作系統
SQL Server,Oracle,MySQL,Sybase / Adaptive Server和DB2兼容
SSL支持
自動從網頁上的表單或IFrame載入參數(GET或POST)
檢測並瀏覽框架集
自動檢測網站語言的選項
檢測並添加載入頁面進程期間使用的Cookie(Set-Cookie檢測)
自動查找提交頁面,其方法(GET或POST)以不同的顏色顯示
可以直接在Datagrids中創建/修改/刪除載入的字元串和Cookie參數
單個SQL注入
盲目的SQL注入
比較頁面的真實和錯誤響應或cookie中的結果
時間延遲
SQL注入在自定義瀏覽器中的響應
可以使用HTML上下文顏色查看返回頁面的HTML代碼源並在其中搜索
微調參數和cookie注入
可以參數化預期結果的長度和計數以優化應用程序執行SQL注入所用的時間
創建/編輯預設的ASCII字元,以優化盲注SQL請求數/請求速度
多線程(最多可配置50個)
選項可以通過空的評論/ ** /針對IDS或過濾器檢測來替換空間
在發送之前自動編碼特殊字元
自動檢測響應頁面中的預定義SQL錯誤
在響應頁面中自動檢測預定義的單詞或句子
實時結果
將會話保存並載入到XML文件中
自動查找正面答案和負面答案頁面之間差異的功能
可以創建一個范圍列表,它將替換隱藏的SQL注入字元串中的變數(>)並自動為您播放它們
使用文本文件中的預定義列表自動重播變數范圍
Firefox插件,它將啟動SQL Power Injector以及當前網頁的所有信息及其會話上下文(參數和cookie)
兩個集成工具:Hex和Char編碼器和MS SQL @options解釋器
可以編輯Referer
可以選擇一個用戶代理(或者甚至在用戶代理XML文件中創建一個)
可以使用設置窗口配置應用程序
支持可配置的代理
軟體截圖
地址:http://www.sqlpowerinjector.com/index.htm
ilo--,Reversing.org - sqlbftools
地址:https://packetstormsecurity.com/files/download/43795/sqlbftools-1.2.tar.gz
Bernardo Damele AG:sqlmap,自動SQL注入工具
介紹
sqlmap是一款開源滲透測試工具,可自動檢測和利用SQL注入漏洞並接管資料庫伺服器。它具有強大的檢測引擎,針對終極滲透測試人員的眾多特性,以及從資料庫指紋識別,從資料庫獲取數據,到訪問底層文件系統以及在操作系統上執行命令的各種開關,帶外連接。
特徵
完全支持MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,IBM DB2,SQLite,Firebird,Sybase,SAP MaxDB,HSQLDB和Informix資料庫管理系統。
完全支持六種SQL注入技術:基於布爾的盲,基於時間的盲,基於錯誤,基於UNION查詢,堆棧查詢和帶外。
支持直接連接資料庫而不通過SQL注入,通過提供DBMS憑證,IP地址,埠和資料庫名稱。
支持枚舉用戶,密碼哈希,特權,角色,資料庫,表和列。
自動識別密碼哈希格式並支持使用基於字典的攻擊對其進行破解。
支持完全轉儲資料庫表,根據用戶的選擇提供一系列條目或特定列。用戶也可以選擇僅轉儲每列條目中的一系列字元。
支持搜索特定的資料庫名稱,跨所有資料庫的特定表或所有資料庫表的特定列。例如,這對於識別包含自定義應用程序憑證的表格非常有用,其中相關列的名稱包含名稱和傳遞等字元串。
當資料庫軟體是MySQL,PostgreSQL或Microsoft SQL Server時,支持從資料庫伺服器底層文件系統下載和上載任何文件。
當資料庫軟體是MySQL,PostgreSQL或Microsoft SQL Server時,支持執行任意命令並在資料庫伺服器底層操作系統上檢索它們的標准輸出。
支持在攻擊者機器和資料庫伺服器底層操作系統之間建立帶外狀態TCP連接。該通道可以是互動式命令提示符,Meterpreter會話或圖形用戶界面(VNC)會話,可以根據用戶的選擇進行選擇。
通過Metasploit的Meterpreter 命令支持資料庫進程'用戶許可權升級
地址:http://sqlmap.org/
icesurfer:SQL Server接管工具 - sqlninja
介紹
喜歡從Microsoft SQL Server上的SQL注入到資料庫上的完整GUI訪問?採用一些新的SQL注入技巧,在注冊表中添加幾個遠程鏡頭以禁用數據執行保護,混合一個自動生成調試腳本的小Perl,將所有這些放在一個帶有Metasploit包裝器的振動器中,只有sqlninja的攻擊模塊之一!
Sqlninja是一款旨在利用以Microsoft SQL Server作為後端的Web應用程序中的SQL注入漏洞的工具。
其主要目標是在易受攻擊的資料庫伺服器上提供遠程訪問,即使在非常惡劣的環境中也是如此。滲透測試人員應該使用它來幫助和自動化發現SQL注入漏洞時接管資料庫伺服器的過程。
特徵
完整的文檔可以在tarball中找到,也可以在這里找到,但是這里列出了忍者的功能:
遠程SQL Server的指紋(版本,執行查詢的用戶,用戶許可權,xp_cmdshell可用性,資料庫身份驗證模式)
數據提取,基於時間或通過DNS隧道
與Metasploit3集成,通過VNC伺服器注入獲得對遠程資料庫伺服器的圖形化訪問,或者僅上傳Meterpreter
通過vbscript或debug.exe僅上傳可執行的HTTP請求(不需要FTP / TFTP)
直接和反向綁定,TCP和UDP
當沒有可用於直接/反向外殼的TCP / UDP埠時,DNS隧道偽外殼,但資料庫伺服器可以解析外部主機名
ICMP隧道外殼,當沒有TCP / UDP埠可用於直接/反向外殼,但資料庫可以Ping您的盒子
蠻力的'sa'密碼(2種口味:基於字典和增量)
如果找到'sa'密碼,許可權將升級到系統管理員組
創建自定義的xp_cmdshell,如果原始的已被刪除
TCP / UDP埠可以從目標SQL Server掃描到攻擊機器,以便找到目標網路防火牆允許的埠並將其用於反向shell
迴避技術混淆了一些IDS / IPS / WAF
與churrasco.exe集成,通過令牌綁架將許可權升級到w2k3上的SYSTEM
支持CVE-2010-0232,將sqlservr.exe的許可權升級到SYSTEM
地址:https://sourceforge.net/projects/sqlninja/files/sqlninja/sqlninja-0.2.999-alpha1.tgz/download