當前位置:首頁 » 編程語言 » 在線sql注入漏洞檢測
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

在線sql注入漏洞檢測

發布時間: 2022-12-30 06:38:54

Ⅰ 什麼是sql注入測試

所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令。我們需要對應用站點做測試,判斷是否存在SQL注入漏洞。具體來說,它是利用現有應用程序,將(惡意的)SQL命令注入到後台資料庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的資料庫,而不是按照設計者意圖去執行SQL語句。[1]比如先前的很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字元暴出的,這類表單特別容易受到SQL注入式攻擊.x0dx0a更多關於什麼是sql注入測試,進入:https://m.abcgonglue.com/ask/7c74091615830905.html?zd查看更多內容

Ⅱ sql注入漏洞有哪些

SQL注入漏洞有哪些

SQL注入攻擊是當今最危險、最普遍的基於Web的攻擊之一。所謂注入攻擊,是攻擊者把SQL命令插入到Web表單的輸入域頁面請求的查詢字元串中,如果要對一個網站進行SQL注入攻擊,首先需要找到存在SQL注入漏洞的地方,也是尋找所謂的注入點。SQL注入點一般存在於登錄頁面、查找頁面或添加頁面等用戶可以查找或修改數據的地方。

SQL注入漏洞有哪些

最常用的尋找SQL注入點的方法,是在網站中尋找如下形式的頁面鏈接:http://www.xxx.com/xxx.asp?id=YY,其中「YY」可能是數字,也有可能是字元串,分別被稱為整數類型數據或者字元型數據。在本章中我們主要針對整數型數據進行SQL注入講解。

通常可以使用以下兩種方法進行檢測,判斷該頁面鏈接是否存在SQL注入漏洞。

加引號」法

在瀏覽器地址欄中的頁面鏈接地址後面增加一個單引號,如下所示:http://www.xxx.com/xxx.asp?id=YY』,然後訪問該鏈接地址,瀏覽器可能會返回類似於下面的錯誤提示信息:Microsoft JET Database Engine 錯誤』80040e14』,字元串的語法錯誤在查詢表達式』ID=YY』中。

如圖所示,頁面中如果返回了類似的錯誤信息,說明該網站可能存在SQL注入攻擊的漏洞。

如果沒有注入點的存在,也很容易判斷。

述兩種鏈接一般都會有程序定義的錯誤提示,或提示類型轉換時出錯。

再次提醒:可能的SQL注入點一般存在於登錄頁面、查找頁面或添加頁面等用戶可以查找或修改數據的地方

Ⅲ 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

Ⅳ SpringBoot 防止SQL注入、XSS攻擊、CSRF/CROS惡意訪問

一、SQL 注入問題


SQL 注入即是指 web 應用程序對用戶輸入數據的合法性沒有判斷或過濾不嚴,攻擊者可以在 web 應用程序中事先定義好的查詢語句的結尾上添加額外的 SQL 語句,在管理員不知情的情況下實現非法操作,以此來實現欺騙資料庫伺服器執行非授權的任意查詢,從而進一步得到相應的數據信息。

簡單來說,就是將大部分 SQL 語句當參數傳入系統中,從而獲取系統中的數據。下面簡單舉例說明

系統中有這樣一條信息 SQL 語句執行,分頁查詢所有用戶,每頁查詢 20 條,並且根據指定欄位進行排序,也就是說排序欄位也是參數傳遞過來的

SQL 注入問題分析:

這樣很簡單的一句話 SQL,就可以把系統搞炸掉,這種方式可以實現刪庫跑路

以上語句會把整個 test 資料庫所有內容都刪掉

盡量用預編譯機制,少用字元串拼接的方式傳參,它是 sql 注入問題的根源。

有些特殊字元,比如:%作為 like 語句中的參數時,要對其進行轉義處理。

需要對所有的異常情況進行捕獲,切記介面直接返回異常信息,因為有些異常信息中包含了 sql 信息,包括:庫名,表名,欄位名等。攻擊者拿著這些信息,就能通過 sql 注入隨心所欲地攻擊你的資料庫了。目前比較主流的做法是,有個專門的網關服務,它統一暴露對外介面。用戶請求介面時先經過它,再由它將請求轉發給業務服務。這樣做的好處是:能統一封裝返回數據的返回體,並且如果出現異常,能返回統一的異常信息,隱藏敏感信息。此外還能做限流和許可權控制。

使用 sqlMap 等待代碼檢測工具,它能檢測 sql 注入漏洞。

需要對資料庫 sql 的執行情況進行監控,有異常情況,及時郵件或簡訊提醒。

對生產環境的資料庫建立單獨的賬號,只分配 DML 相關許可權,且不能訪問系統表。切勿在程序中直接使用管理員賬號。

建立代碼 review 機制,能找出部分隱藏的問題,提升代碼質量。

對於不能使用預編譯傳參時,要麼開啟 druid 的 filter 防火牆,要麼自己寫代碼邏輯過濾掉所有可能的注入關鍵字。

XSS 攻擊通常指的是通過利用網頁開發時留下的漏洞,通過巧妙的方法注入惡意指令代碼到網頁,使用戶載入並執行攻擊者惡意製造的網頁程序。這些惡意網頁程序通常是 JavaScript,但實際上也可以包括 Java、 VBScript、ActiveX、 Flash 或者甚至是普通的 HTML。攻擊成功後,攻擊者可能得到包括但不限於更高的許可權(如執行一些操作)、私密網頁內容、會話和 cookie 等各種內容。

通常情況下,被用來盜用 Cookie、破壞頁面結構、重定向到其他網站等

對用戶輸入的表單信息進行檢測過濾

CSRF - Cross-Site Request Forgery - 跨站請求偽造:

攻擊可以在受害者毫不知情的情況下以受害者名義偽造請求發送給受攻擊站點,從而在未授權的情況下執行在許可權保護之下的操作,CORS - Cross Origin Resourse-Sharing - 跨站資源共享,惡意訪問內網敏感資源。

有效的解決辦法是通過多種條件屏蔽掉非法的請求,例如 HTTP 頭、參數等:

防止大規模的惡意請求,niginx 反向代理可以配置請求頻率,對 ip 做限制。nginx 可以很方便地做訪問控制,特別是一些偶發性的大量惡意請求,需要屏蔽處理。

屏蔽 ip 地址

屏蔽 user-agent

屏蔽代理 ip

有兩種情形會需要屏蔽代理 ip:一是代理 ip 訪問,二是負載均衡(real-ip 請求負載均衡伺服器,再代理給後端 server)

創建 包裝器,這是實現 XSS 過濾的關鍵,在其內重寫了 getParameter,getParameterValues,getHeader 等方法,對 http 請求內的參數進行了過濾

Ⅳ 如何檢測SQL注入技術以及跨站腳本攻擊

在最近兩年中,安全專家應該對網路應用層的攻擊更加重視。因為無論你有多強壯的防火牆規則設置或者非常勤於補漏的修補機制,如果你的網路應用程序開發者沒
有遵循
安全代碼進行開發,攻擊者將通過80埠進入你的系統。廣泛被使用的兩個主要攻擊技術是SQL注入[ref1]和CSS[ref2]攻擊。SQL注入是
指:通過互聯網的輸入區域,插入SQL meta-characters(特殊字元
代表一些數據)和指令,操縱執行後端的SQL查詢的技術。這些攻擊主要針對其他組織的WEB伺服器。CSS攻擊通過在URL里插入script標簽,然後

誘導信任它們的用戶點擊它們,確保惡意Javascript代碼在受害人的機器上運行。這些攻擊利用了用戶和伺服器之間的信任關系,事實上伺服器沒有對輸
入、輸出進行檢測,從而未拒絕javascript代碼。
這篇文章討論SQL注入和CSS攻擊漏洞的檢測技術。網上已經有很多關於這兩種基於
WEB攻擊的討論,比如如何實施攻擊,他們的影響,怎樣更好的編制和設計程序防止這些攻擊。 然而,
對如何檢測這些攻擊並沒有足夠的討論。我們採用流行的開源的IDS Snort[ref
3],組建根據檢測這些攻擊的規則的正則表達式。附帶,Snort默認規則設定包含檢測CSS的方法,但是這些容易被避開檢測。比如大多通過hex進制編
碼,如%3C%73%63%72%69%70% 74%3E代替避開檢測。
依賴level of
paranoia組織的能力,我們已經編寫了多種檢測相同攻擊的規則。如果你希望檢測各種可能的SQL注入攻擊,那麼你需要簡單的留意任何現行的SQL
meta-characters,如單引號,分號和雙重破折號。同樣的一個極端檢測CSS攻擊的方法,只要簡單地提防HTML標記的角括弧。但這樣會檢測
出很多錯誤。為了避免這些,這些規則需要修改使它檢測更精確些, 當仍然不能避免錯誤。
在Snort規則中使用pcre(Perl
Compatible Regular
Expressions)[ref4]關鍵字,每個規則可以帶或不帶其他規則動作。這些規則也可以被公用軟體如grep(文檔搜索工具)使用,來審閱網路
伺服器日誌。 但是,需要警惕的是,用戶的輸入只有當以GET提交請求時,WEB伺服器才會記錄日記,如果是以POST提交的請求在日記中是不會記錄的。
2. SQL注入的正則表示式

你為SQL注入攻擊選擇正則表示式的時候,重點要記住攻擊者可以通過提交表單進行SQL注入,也可以通過Cookie區域。你的輸入檢測邏輯應該考慮用戶

組織的各類型輸入(比如表單或Cookie信息)。並且如果你發現許多警告來自一個規則,請留意單引號或者是分號,也許些字元是你的Web應用程序創造的
合法的在CookieS中的輸入。因此, 您需要根據你的特殊的WEB應用程序評估每個規則。
依照前面提到,一個瑣細的檢測SQL射入攻擊的正則表達式要留意SQL特殊的meta-characters 譬如單引號(』)雙重擴則號(--),為了查出這些字元和他們hex等值數, 以下正則表達式適用:
2.1 檢測SQL meta-characters的正則表達式
/(\%27)|(\』)|(\-\-)|(\%23)|(#)/ix
解釋:

們首先檢查單引號等值的hex,單引號本身或者雙重擴折號。這些是MS SQL Server或Oracle的字元, 表示後邊的為評論,
隨後的都將被忽略。 另外,如果你使用MySQL,你需要留意 』#』和它等值的hex的出現。注意我們不需要檢查雙重破折號等值的hex,
因為這不是HTML meta-character, 瀏覽器不會進行編碼。 並且,
如果攻擊者設法手工修改雙重破折號為它的hex值%2D(使用代理像Achilles[ref 5]), SQL注入將失敗。
加入上述正則表達式的新的Snort規則如下:
alert
tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"SQL
Injection - Paranoid";
flow:to_server,established;uricontent:".pl";pcre:"/(\%27)|(\』)|(\-\-)|(%23)|(#)/i";
classtype:Web-application-attack; sid:9099; rev:5;)
在本篇討論中,
uricontent關鍵字的值為".pl ", 因為在我們的測試環境里, CGI
程序是用Perl寫的。uricontent關鍵字的值取決於您的特殊應用, 這個值也許是".php ", 或" .asp ", 或" .jsp
", 等。 從這點考慮, 我們不顯示對應的Snort 規則, 但是我們會給出創造這些規則的正則表達式。
通過這些正則表達式你可以很簡單的創造很多的Snort規則.在前面的正則表達式里,
我們檢測雙重破折號是因為:即便沒有單引號的存在那裡也可能是SQL射入點[ref 6]。 例如, SQL查詢條目只包含數值,如下:
select value1, value2, num_value3 from database
where num_value3=some_user_supplied_number
這種情況,攻擊者可以執行額外的SQL查詢, 示範提交如下輸入:
3; insert values into some_other_table
最後, pcre的修飾符』 i』 和』 x 』 是用於分別匹配大小寫和忽略空白處的。 上面的規則也可以另外擴展來檢查分號的存在。然而,分號很可以是正常HTTP應答的一部分。為了減少這種錯誤,也是為了任何正常的單引號和雙重擴折號的出
現,上面的規則應該被修改成先檢測=號的存。用戶輸入會響應一個GET或POST請求,一般輸入提交如下:
username=some_user_supplied_value&password=some_user_supplied_value
因此, SQL 注入嘗試將導致用戶的輸入出現在a = 號或它等效的hex值之後。
2.2 修正檢測SQL meta-characters的正則表達式
/((\%3D)|(=))[^\n]*((\%27)|(\』)|(\-\-)|(\%3B)|(:))/i
解釋:
這個規則首先留意 = 號或它的hex值(%3D),然後考慮零個或多個除換行符以外的任意字元,最後檢測單引號,雙重破折號或分號。

型的SQL注入會嘗試圍繞單引號的用途操作原來的查詢,以便得到有用的價值。討論這個攻擊一般使用1』or』1』=』1字元串. 但是,
這個串的偵查很容易被逃避,譬如用1』or2>1 --.
然而唯一恆定的部分是最初的字元的值,跟隨一單引號,再加』or』。隨後的布爾邏輯可能在一定范圍上變化,可以是普通樣式也可能是非常復雜的。這些攻擊可
以相當精確被偵測,通過以下的正則表達式。2.3章節講解。
2.3 典型的 SQL 注入攻擊的正則表達式
/\w*((\%27)|(\』))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix
解釋:
\w* - 零個或多個字元或者下劃線。
(\%27)|\』 - 單引號或它的hex等值。
(\%6 F)|o|(\%4 F))((\%72)|r|-(\%52) -『or』的大小寫以及它的hex等值。
』union』SQL
查詢在SQL注入各種資料庫中攻擊中同樣是很常見的。如果前面的正則表達式僅僅檢測單引號或則其他的SQL meta characters
,會造成很多的錯誤存在。你應該進一步修改查詢,檢測單引號和關鍵字『union』。這同樣可以進一步擴展其他的SQL關鍵字,像』select』,
』insert』, 』update』, 』delete』, 等等。
2.4 檢測SQL注入,UNION查詢關鍵字的正則表達式
/((\%27)|(\』))union/ix
(\%27)|(\』) - 單引號和它的hex等值
union - union關鍵字
可以同樣為其他SQL查詢定製表達式,如 >select, insert, update, delete, drop, 等等.

果,到這個階段,攻擊者已經發現web應用程序存在SQL注入漏洞,他將嘗試利用它。如果他認識到後端伺服器式MS SQL
server,他一般會嘗試運行一些危險的儲存和擴展儲存過程。這些過程一般以『sp』或『xp』字母開頭。典型的,他可能嘗試運行
『xp_cmdshell』擴展儲存過程(通過SQL Server執行Windows
命令)。SQL伺服器的SA許可權有執行這些命令的許可權。同樣他們可以通過xp_regread, xp_regwrite等儲存過程修改注冊表。
2.5 檢測MS SQL Server SQL注入攻擊的正則表達式
/exec(\s|\+)+(s|x)p\w+/ix
解釋:
exec - 請求執行儲存或擴展儲存過程的關鍵字
(\s|\+)+ - 一個或多個的空白或它們的http等值編碼
(s|x) p- 『sp』或『xp』字母用來辨認儲存或擴展儲存過程
\w+ - 一個或多個字元或下劃線來匹配過程的名稱
3. 跨站腳本(CSS)的正則表達式

發動CSS攻擊或檢測一個網站漏洞的時候, 攻擊者可能首先使簡單的HTML標簽如(粗體),(斜體)或(下劃線),或者他可能嘗試簡單的
script標簽如alert("OK").
因為大多數出版物和網路傳播的檢測網站是否有css漏洞都拿這個作為例子。這些嘗試都可以很簡單的被檢測出來。
然而,高明點的攻擊者可能用它的hex值替換整個字元串。這樣標簽會以%3C%73%63%72%69%70%74%3E出 現。
另一方面,攻擊者可能使用web代理伺服器像Achilles會自動轉換一些特殊字元如換成%3E.這樣攻擊發生時,URL
中通常以hex等值代替角括弧。
下列正則表達式將檢測任何文本中包含的html的。它將捉住試圖使用、、或。這正則表達式應該忽略大小寫。我們需要同時檢測角括弧和它的hex等值(% 3C|
3.1 一般 CSS 攻擊的正則表達式
/((\%3C)|)/ix
解釋:
((\%3C)|) -檢查>或它的hex等值
Snort 規則:
alert
tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"NII
Cross-site scripting attempt"; flow:to_server,established;
pcre:"/((\%3C)|)/i"; classtype:Web-application-attack; sid:9000; rev:5;)
跨站腳本同樣可以使用技術。現行默認的snort規則可以被輕易避開。
3.2章節提供了防止這種技術的方法。
3.2 "
/((\%3C)|)/I
解釋:
(\%3 C)|) ->或它的hex等值
3.3 CSS 攻擊的極端的正則表達式
/((\%3C)|)/I
解釋:
這個規則簡單尋找。由於你的web伺服器和web應用程序的構架,這個規則可能產生一些錯誤。但它能保證捉住任何CCS或者類似CSS的攻擊。
一個不錯避開過濾的CSS方法請參考Bugtraq投稿的
http://www.securityfocus.com/archive/1/272...rchive/1/272037.
但是請注意最後一種極端的規則將能檢測這所有的攻擊。
總結:


這篇文章中,我們提出了不同種類的正則表達式規則來檢測SQL注入和跨站腳本攻擊。有些規則簡單而極端,一個潛在的攻擊都將提高警惕。但這些極端的規則可

能導致一些主動的錯誤。考慮到這點,我們修改了這些簡單的規則,利用了另外的樣式,他們可以檢查的更准確些。在這些網路應用成的攻擊檢測中,我們推薦將這
些作為調試你IDS或日誌分析方法的起點。再經過幾次修改後,在你對正常網交易部分的非惡意應答進行評估以後,你應該可以准備的檢測那些攻擊了。

Ⅵ 如何使用sqlmap進行sql注入

輸入命令sqlmap -u + 「風險網址」 檢測是否存在sql注入漏洞。

看到返回了 伺服器的類型,web環境,資料庫類型。確定存在漏洞我們開始下一步的注入。根據返回的資料庫類型我們確定資料庫為access資料庫。使用--tables 猜解表。

猜解完表格後我們進一步猜解表的內容。
命令 : python sqlmap.py -u URL -T admin --columns
注意 暴力破解的線程數 最大為10 ,其他的參數可以直接回車。

猜解完表的內容我們可以直接猜解表列的內容。

5
等待一段時間後,程序工作完畢,查看結果。

Ⅶ 測試登陸頁面時,如何測試SQL注入漏洞呢

許多網站程序在編寫時,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段資料庫查詢代碼(一般是在瀏覽器地址欄進行,通過正常的www埠訪問),根據程序返回的結果,獲得某些想得知的數據,這就是所謂的SQL Injection,即SQL注入。

網站的惡夢——SQL注入

SQL注入通過網頁對網站資料庫進行修改。它能夠直接在資料庫中添加具有管理員許可權的用戶,從而最終獲得系統管理員許可權。黑客可以利用獲得的管理員許可權任意獲得網站上的文件或者在網頁上加掛木馬和各種惡意程序,對網站和訪問該網站的網友都帶來巨大危害。

防禦SQL注入有妙法

第一步:很多新手從網上下載SQL通用防注入系統的程序,在需要防範注入的頁面頭部用來防止別人進行手動注入測試。

可是如果通過SQL注入分析器就可輕松跳過防注入系統並自動分析其注入點。然後只需要幾分鍾,你的管理員賬號及密碼就會被分析出來。

第二步:對於注入分析器的防範,通過實驗,發現了一種簡單有效的防範方法。首先我們要知道SQL注入分析器是如何工作的。在操作過程中,發現軟體並不是沖著「admin」管理員賬號去的,而是沖著許可權(如flag=1)去的。這樣一來,無論你的管理員賬號怎麼變都無法逃過檢測。

第三步:既然無法逃過檢測,那我們就做兩個賬號,一個是普通的管理員賬號,一個是防止注入的賬號,如果找一個許可權最大的賬號製造假象,吸引軟體的檢測,而這個賬號里的內容是大於千字以上的中文字元,就會迫使軟體對這個賬號進行分析的時候進入全負荷狀態甚至資源耗盡而死機。下面我們就來修改資料庫吧。

1.對表結構進行修改。將管理員的賬號欄位的數據類型進行修改,文本型改成最大欄位255(其實也夠了,如果還想做得再大點,可以選擇備注型),密碼的欄位也進行相同設置。

2.對表進行修改。設置管理員許可權的賬號放在ID1,並輸入大量中文字元(最好大於100個字)。

3.把真正的管理員密碼放在ID2後的任何一個位置(如放在ID549上)。

我們通過上面的三步完成了對資料庫的修改。

另外要明白您做的ID1賬號其實也是真正有許可權的賬號,現在計算機處理速度那麼快,要是遇上個一定要將它算出來的軟體,這也是不安全的。只要在管理員登錄的頁面文件中寫入字元限制就行了,就算對方使用這個有上千字元的賬號密碼也會被擋住的,而真正的密碼則可以不受限制。

Ⅷ SQL注入漏洞的判斷

如果以前沒玩過注入,
請把IE菜單-工具-Internet選項-高級-顯示友好HTTP錯誤信息前面的勾去掉。
為了把問題說明清楚,以下以asp?id=xx(" target=_blank>http://www.hackbase.com/news.asp?id=xx(這個地址是假想的)
為例進行分析,xx可能是整型,也有可能是字元串。
1、整型參數的判斷
當輸入的參數xx為整型時,通常news.asp中SQL語句原貌大致如下:
select * from 表名 where 欄位=xx,所以可以用以下步驟測試SQL注入是否存在。
最簡單的判斷方法
http://www.hackbase.com/news.asp?id=xx』(附加一個單引號),
此時news.asp中的SQL語句變成了
select * from 表名 where 欄位=xx』,
如果程序沒有過濾好「』」的話
就會提示 news.asp運行異常;
但這樣的方法雖然很簡單,但並不是最好的
因為
first,不一定每台伺服器的IIS都返回具體錯誤提示給客戶端,
如果程序中加了cint(參數)之類語句的話,SQL注入是不會成功的,
但伺服器同樣會報錯,具體提示信息為處理 URL 時伺服器上出錯。
請和系統管理員聯絡。
second,目前大多數程序員已經將「』「 過濾掉,所以用」 』」測試不到注入點
所以一般使用經典的1=1和1=2測試方法
見下文:
http://www.hackbase.com/news.asp?id=xx and 1=1, news.asp運行正常,
而且與http://www.hackbase.com/news.asp?id=xx運行結果相同;
http://www.hackbase.com/news.asp?id=xx and 1=2, news.asp運行異常;(這就是經典的 1=1 ;1=2 判斷方法)
如果以上面滿足,news.asp中就會存在SQL注入漏洞,反之則可能不能注入。
2、字元串型參數的判斷
方法與數值型參數判斷方法基本相同
當輸入的參數xx為字元串時,通常news.asp中SQL語句原貌大致如下:
select * from 表名 where 欄位='xx',所以可以用以下步驟測試SQL注入是否存在。
http://www.hackbase.com/news.asp?id=xx』(附加一個單引號),此時news.asp中的SQL語句變成了
select * from 表名 where 欄位=xx』,news.asp運行異常;
http://www.hackbase.com/news.asp?id=xx and '1'='1', news.asp運行正常,
而且與http://www.hackbase.com/news.asp?id=xx運行結果相同;
http://www.hackbase.com/news.asp?id=xx and '1'='2', news.asp運行異常;
如果以上滿足,則news.asp存在SQL注入漏洞,反之則不能注入
3、特殊情況的處理
有時ASP程序員會在程序員過濾掉單引號等字元,以防止SQL注入。此時可以用以下幾種方法試一試。
①大小定混合法:由於VBS並不區分大小寫,而程序員在過濾時通常要麼全部過濾大寫字元串,要麼全部過濾小寫字元串,而大小寫混合往往會被忽視。如用SelecT代替select,SELECT等;
②UNICODE法:在IIS中,以UNICODE字元集實現國際化,我們完全可以IE中輸入的字元串化成UNICODE字元串進行輸入。如+ =%2B,空格=%20 等
;URLEncode信息參見附件一;
③ASCII碼法:可以把輸入的部分或全部字元全部
<4>出了上述方法以外,還有個更簡單的方法就是使用現成的工具
像NB聯盟的NBSI就是一款很不錯的工具,目前最新的版本為2.2

Ⅸ 如何檢查sql注入問題

SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令!查漏洞可以去網路里打iiscan,登錄億思官網,裡面有免費的網站安全檢測,可以查漏洞的!!!