當前位置:首頁 » 編程語言 » java中sql注入主要發生的位置
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

java中sql注入主要發生的位置

發布時間: 2023-03-29 16:35:08

『壹』 3大Web安全漏洞防禦詳解:XSS、CSRF、以及sql注入解決方案

隨著互聯網的普及,網路安全變得越來越重要。Java等程序員需要掌握基本的web安全知識,防患於未然,下面列舉一些常見的安全漏洞,以及對應的防禦解決方案。

1.前端安全

2.後端安全

1.XSS簡介

跨站腳本(cross site script)簡稱為XSS,是一種經常出現在web應用中的計算機安全漏洞,也是web中最主流的攻擊方式。

XSS是指惡意攻擊者利用網站沒有對用戶提交數據進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁面中去,使別的用戶訪問都會執行相應的嵌入代碼。

2.XSS攻擊的危害

1、盜取用戶資料,比如:登錄帳號、網銀帳號等

2、利用用戶身份,讀取、篡改、添加、刪除企業敏感數據等

3、盜竊企業重要的具有商業價值的資料

4、非法轉賬

5、強制發送電子郵件

6、網站掛馬

7、控制受害者機器向其它網站發起攻擊

3.防止XSS解決方案

XSS的根源主要是沒完全過濾客戶端提交的數據 ,所以重點是要過濾用戶提交的信息。

1.CSRF簡介

CSRF(Cross-site request forgery)跨站請求偽造,也被稱為「One Click Attack」或者Session Riding,通常縮寫為CSRF或者XSRF,是一種對網站的惡意利用。

XSS利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。與XSS攻擊相比,CSRF更具危險性。

2.CSRF攻擊的危害

主要的危害來自於,攻擊者盜用了用戶身份,發送惡意請求。比如:模擬用戶的行為發送郵件,發消息,以及支付、轉賬等財產安全。

3.防止CSRF的解決方案

1.簡介

SQL注入是比較常見的網路攻擊方式之一,主要是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字元串,實現無帳號登錄,甚至篡改資料庫

2.SQL注入的危害

3.防止SQL注入的方式

通常情況下,SQL注入的位置包括:

(1)表單提交,主要是POST請求,也包括GET請求;

(2)URL參數提交,主要為GET請求參數;

(3)Cookie參數提交;

(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;

4.簡要舉例

舉一個簡單的例子,select * from user where id=100 ,表示查詢id為100的用戶信息,如果id=100變為 id=100 or 2=2,sql將變為:select * from user where id=100 or 2=2,將把所有user表的信息查詢出來,這就是典型的sql注入。

5.防止SQL注入的解決方案

1)對用戶的輸入進行校驗,使用正則表達式過濾傳入的參數

2)使用參數化語句,不要拼接sql,也可以使用安全的存儲過程

3)不要使用管理員許可權的資料庫連接,為每個應用使用許可權有限的資料庫連接

4)檢查數據存儲類型

5)重要的信息一定要加密

總之就是既要做好過濾與編碼並使用參數化語句,也要把重要的信息進行加密處理,這樣sql注入漏洞才能更好的解決。

以上就是Web安全介紹,更多Redis系列、Spring Cloud、Dubbo等微服務、MySQL資料庫分庫分表等架構設計,具體請參考:

回復關鍵詞 【高並發】即可獲取!

『貳』 什麼是sql注入如何防止sql注入

SQL注入是一種非常常見的資料庫攻擊手段,同時也是網路世界中最普遍的漏洞之一,簡單理解就是惡意用戶通過在表單中填寫包含SQL關鍵字的數據來使資料庫執行非常規代碼的過程。
問題來源是,SQL資料庫的操作是通過SQL語句來執行的,而無論是執行代碼還是數據項都必須寫在SQL語句中,也就導致如果我們在數據項中加入了某些SQL語句關鍵字,比如SELECT、DROP等,這些關鍵字就很有可能在資料庫寫入或讀取數據時得到執行。
解決方案
方案一:
採用預編譯技術
使用預編譯的SQL語句,SQL語句的語義不會是不會發生改變的。預編譯語句在創建的時候就已經將指定的SQL語句發送給了DBMS,完成了解析,檢查,編譯等工作,所以攻擊者無法改變SQL語句的結構,只是把值賦給?,然後將?這個變數傳給SQL語句。當然還有一些通過預編譯繞過某些安全防護的操作,大家感興趣可以去搜索一下。
方案二:
嚴格控制數據類型
在java、c等強類型語言中一般是不存在數字型注入的,因為在接受到用戶輸入id時,代碼一般會做一個int id 的數據類型轉換,假如我們輸入的是字元串的話,那麼這種情況下,程序就會報錯。但是在PHP、ASP這些沒有強調處理數據類型的語言,一般我們看到的接收id的代碼都是如下等代碼。
方案三:
對特殊的字元進行轉義
數字型注入可以通過檢查數據類型防止,但是字元型不可以,那麼怎麼辦呢,最好的辦法就是對特殊的字元進行轉義了。比如在MySQL中我們可以對" '
"進行轉義,這樣就防止了一些惡意攻擊者來閉合語句。當然我們也可以通過一些安全函數來轉義特殊字元。如addslashes()等,但是這些函數並非一勞永逸,攻擊者還可以通過一些特殊的方式繞過。

『叄』 資料庫操作中哪種情況會出現SQL注入

所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字元串,最終達到欺騙伺服器執行惡意的SQL命令

什麼時候最易受到sql注入攻擊
當應用程序使用輸入內容來構造動態sql語句以訪問資料庫時,會發生sql注入攻擊。如果代碼使用存儲過程,而這些存儲過程作為包含未篩選的用戶輸入的字元串來傳遞,也會發生sql注入。sql注入可能導致攻擊者使用應用程序登陸在資料庫中執行命令。相關的SQL注入可以通過測試工具pangolin進行。如果應用程序使用特權過高的帳戶連接到資料庫,這種問題會變得很嚴重。在某些表單中,用戶輸入的內容直接用來構造動態sql命令,或者作為存儲過程的輸入參數,這些表單特別容易受到sql注入的攻擊。而許多網站程序在編寫時,沒有對用戶輸入的合法性進行判斷或者程序中本身的變數處理不當,使應用程序存在安全隱患。這樣,用戶就可以提交一段資料庫查詢的代碼,根據程序返回的結果,獲得一些敏感的信息或者控制整個伺服器,於是sql注入就發生了。

SQL注入的手法相當靈活,在注入的時候會碰到很多意外的情況。能不能根據具體情況進行分析,構造巧妙的SQL語句,從而成功獲取想要的數據,是高手與「菜鳥」的根本區別。

注入大致方法
方法1
先猜表名 And (Select count(*) from 表名)<>0 猜列名 And (Select count(列名) from 表名)<>0 或者也可以這樣 and exists (select * from 表名) and exists (select 列名 from 表名) 返回正確的,那麼寫的表名或列名就是正確 這里要注意的是,exists這個不能應用於猜內容上,例如and exists (select len(user) from admin)>3 這樣是不行的 現在很多人都是喜歡查詢裡面的內容,一旦iis沒有關閉錯誤提示的,那麼就可以利用報錯方法輕松獲得庫裡面的內容 獲得資料庫連接用戶名:;and user>0 這個是小竹提出來的,我這里引用《SQL注入天書》裡面的一段話來講解:
"重點在and user>0,我們知道,user是SQLServer的一個內置變數,它的值是當前連接的用戶名,類型為nvarchar。拿一個 nvarchar的值跟int的數0比較,系統會先試圖將nvarchar的值轉成int型,當然,轉的過程中肯定會出錯,SQLServer的出錯提示是:將nvarchar轉換int異常,XXXX不能轉換成int" 看到這里大家明白了吧,報錯的原理就是利用SQLserver內置的系統表進行轉換查詢,轉換過程會出錯,然後就會顯示出在網頁上,另外還有類似的and 1=(selet top 1 user from admin),這種語句也是可以爆出來的。;and db_name()>0 則是暴資料庫名。 一旦關閉了IIS報錯,那麼還可以用union(聯合查詢)來查內容,主要語句就是 Order by 10 And 1=2 union select 1,2,3,4,5,6,7,8,9,10 from admin And 1=2 union select 1,2,3,user,5,passwd,7,8,9,10 from admin 上面的order by 10主要就是查欄位數目,admin就是表名,可以自己猜,user,passwd是列名 反正就是返回正確即對,返回異常即錯 另外還有十分常用的ascll碼拆半法 先要知道指定列名,例如user里的內容的長度 and (select len(user) from admin)=2 就是查詢長度為不為2位,返回錯誤的增加或減少數字,一般這個數字不會太大,太大的就要放棄了,猜也多餘 後面的邏輯符號可以根據不同要求更改的, >;大於 <;小於 =就是等於咯,更新語句的話,=也可以表示傳遞符號 <>;就是不等 知道了長度後就可以開始猜解了 And (Select top 1 asc(mid(user,n,1)) from admin)>100 n就是猜解的表名的第幾位,最後的長度數字就是剛才猜解出來的列名長度了,And (Select top 1 asc(mid(user,1,1)) from admin)>100 就是猜解user里內容的第一位的ASCLL字元是不是大於100 正確的話,那麼表示USER第一個字元的ASCLL碼大於100,那麼就猜>120,返回錯誤就是介於100-120之間,然後再一步一步的縮少,最終得到正確字元XXX,然後用ASCLL轉換器吧這個轉換成普通字元就可以了 然後就是第二位 And (Select top 1 asc(mid(user,2,1)) from admin)>100 一直猜下去 加在url後面,列名表名還是先猜解,返回正確的代表帳號的ascll碼大於100,那麼就再向前猜,指導報錯,把猜出來的ascll碼拿去ascll轉換器轉換就可以了,中文是負數,加上asb取絕對值 And (Select top 1 asb(asc(mid(user,n,1))) from admin)>15320 得到之後就記得在數字前加-號,不然ASCLL轉換器轉換不來的,中文在ASCLL碼里是-23423這樣的,所以猜起來挺麻煩 這個猜解速度比較慢,但是效果最好,最具有廣泛性
方法2
後台身份驗證繞過漏洞 驗證繞過漏洞就是'or'='or'後台繞過漏洞,利用的就是AND和OR的運算規則,從而造成後台腳本邏輯性錯誤 例如管理員的賬號密碼都是admin,那麼再比如後台的資料庫查詢語句是 user=request("user") passwd=request("passwd") sql='select admin from adminbate where user='&'''&user&'''&' and passwd='&'''&passwd&''' 那麼我使用'or 'a'='a來做用戶名密碼的話,那麼查詢就變成了 select admin from adminbate where user=''or 'a'='a' and passwd=''or 'a'='a' 這樣的話,根據運算規則,這里一共有4個查詢語句,那麼查詢結果就是 假or真and假or真,先算and 再算or,最終結果為真,這樣就可以進到後台了 這種漏洞存在必須要有2個條件,第一個:在後台驗證代碼上,賬號密碼的查詢是要同一條查詢語句,也就是類似 sql="select * from admin where username='"&username&'&"passwd='"&passwd&' 如果一旦賬號密碼是分開查詢的,先查帳號,再查密碼,這樣的話就沒有辦法了。 第二就是要看密碼加不加密,一旦被MD5加密或者其他加密方式加密的,那就要看第一種條件有沒有可以,沒有達到第一種條件的話,那就沒有戲了

摘自:http://ke..com/view/3896.htm

『肆』 關於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注入

SQL注入:利用現有應用程序,將(惡意)的SQL命令注入到後台資料庫引擎執行的能力,這是SQL注入的標准釋義。
隨著B/S模式被廣泛的應用,用這種模式編寫應用程序的程序員也越來越多,但由於開發人員的水平和經驗參差不齊,相當一部分的開發人員在編寫代碼的時候,沒有對用戶的輸入數據或者是頁面中所攜帶的信息(如Cookie)進行必要的合法性判斷,導致了攻擊者可以提交一段資料庫查詢代碼,根據程序返回的結果,獲得一些他想得到的數據。

SQL注入利用的是正常的HTTP服務埠,表面上看來和正常的web訪問沒有區別,隱蔽性極強,不易被發現。
SQL注入攻擊過程分為五個步驟:
第一步:判斷Web環境是否可以SQL注入。如果URL僅是對網頁的訪問,不存在SQL注入問題,如:http://www.../162414739931.shtml就是普通的網頁訪問。只有對資料庫進行動態查詢的業務才可能存在SQL注入,如:http://www...../webhp?id=39,其中?id=39表示資料庫查詢變數,這種語句會在資料庫中執行,因此可能會給資料庫帶來威脅。
第二步:尋找SQL注入點。完成上一步的片斷後,就要尋找可利用的注入漏洞,通過輸入一些特殊語句,可以根據瀏覽器返回信息,判斷資料庫類型,從而構建資料庫查詢語句找到注入點。

第三步:猜解用戶名和密碼。資料庫中存放的表名、欄位名都是有規律可言的。通過構建特殊資料庫語句在資料庫中依次查找表名、欄位名、用戶名和密碼的長度,以及內容。這個猜測過程可以通過網上大量注入工具快速實現,並藉助破解網站輕易破譯用戶密碼。

第四步:尋找WEB管理後台入口。通常WEB後台管理的界面不面向普通用戶

開放,要尋找到後台的登陸路徑,可以利用掃描工具快速搜索到可能的登陸地址,依次進行嘗試,就可以試出管理台的入口地址。

第五步:入侵和破壞。成功登陸後台管理後,接下來就可以任意進行破壞行為,如篡改網頁、上傳木馬、修改、泄漏用戶信息等,並進一步入侵資料庫伺服器。
SQL注入攻擊的特點:

變種極多,有經驗的攻擊者會手動調整攻擊參數,致使攻擊數據的變種是不可枚舉的,這導致傳統的特徵匹配檢測方法僅能識別相當少的攻擊,難以防範。

攻擊過程簡單,目前互聯網上流行眾多的SQL注入攻擊工具,攻擊者藉助這些工具可很快對目標WEB系統實施攻擊和破壞。

危害大,由於WEB編程語言自身的缺陷以及具有安全編程能力的開發人員少之又少,大多數WEB業務系統均具有被SQL注入攻擊的可能。而攻擊者一旦攻擊成功,可以對控制整個WEB業務系統,對數據做任意的修改,破壞力達到及至。

SQL注入的危害和現狀

SQL注入的主要危害包括:

未經授權狀況下操作資料庫中的數據

惡意篡改網頁內容

私自添加系統帳號或者是資料庫使用者帳號

網頁掛木馬

如何防止SQL參數:
1,檢查上傳的數據,並過濾
2. 禁止拼接SQL字元串
3.使用SQL參數化處理
4.載入防入侵等硬體設施

『陸』 常見的操作系統漏洞有哪些怎麼解決

再強大再安全的 操作系統 ,也會出現一些漏洞從而被病毒攻擊。那麼如何解決漏洞被攻擊的問題呢?下面由我整理了常見的操作系統漏洞及解決 方法 ,希望對你有幫助。

常見的操作系統漏洞及解決方法

常見的操作系統漏洞一、 SQL注入漏洞

SQL注入攻擊(SQL Injection),簡稱注入攻擊、SQL注入,被廣泛用於非法獲取網站控制權,是發生在應用程序的資料庫層上的安全漏洞。在設計程序,忽略了對輸入字元串中夾帶的SQL指令的檢查,被資料庫誤認為是正常的SQL指令而運行,從而使資料庫受到攻擊,可能導致數據被竊取、更改、刪除,以及進一步導致網站被嵌入惡意代碼、被植入後門程序等危害。

通常情況下,SQL注入的位置包括:

(1)表單提交,主要是POST請求,也包括GET請求;

(2)URL參數提交,主要為GET請求參數;

(3)Cookie參數提交;

(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;

(5)一些邊緣的輸入點,比如.mp3文件的一些文件信息等。

SQL注入的危害不僅體現在資料庫層面上,還有可能危及承載資料庫的操作系統;如果SQL注入被用來掛馬,還可能用來傳播惡意軟體等,這些危害包括但不局限於:

(1)資料庫信息泄漏:資料庫中存放的用戶的隱私信息的泄露。作為數據的存儲中心,資料庫里往往保存著各類的隱私信息,SQL注入攻擊能導致這些隱私信息透明於攻擊者。

(2)網頁篡改:通過操作資料庫對特定網頁進行篡改。

(3)網站被掛馬,傳播惡意軟體:修改資料庫一些欄位的值,嵌入網馬鏈接,進行掛馬攻擊。

(4)資料庫被惡意操作:資料庫伺服器被攻擊,資料庫的系統管理員帳戶被篡改。

(5)伺服器被遠程式控制制,被安裝後門。經由資料庫伺服器提供的操作系統支持,讓黑客得以修改或控制操作系統。

(6)破壞硬碟數據,癱瘓全系統。

解決SQL注入問題的關鍵是對所有可能來自用戶輸入的數據進行嚴格的檢查、對資料庫配置使用最小許可權原則。 通常使用的方案有:

(1)所有的查詢語句都使用資料庫提供的參數化查詢介面,參數化的語句使用參數而不是將用戶輸入變數嵌入到SQL語句中。當前幾乎所有的資料庫系統都提供了參數化SQL語句執行介面,使用此介面可以非常有效的防止SQL注入攻擊。

(2)對進入資料庫的特殊字元('"<>&*;等)進行轉義處理,或編碼轉換。

(3)確認每種數據的類型,比如數字型的數據就必須是數字,資料庫中的存儲欄位必須對應為int型。

(4)數據長度應該嚴格規定,能在一定程度上防止比較長的SQL注入語句無法正確執行。

(5)網站每個數據層的編碼統一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。

(6)嚴格限制網站用戶的資料庫的操作許可權,給此用戶提供僅僅能夠滿足其工作的許可權,從而最大限度的減少注入攻擊對資料庫的危害。

(7)避免網站顯示SQL錯誤信息,比如類型錯誤、欄位不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。

(8)在網站發布之前建議使用一些專業的SQL注入檢測工具進行檢測,及時修補這些SQL注入漏洞。

常見的操作系統漏洞二、 跨站腳本漏洞

跨站腳本攻擊(Cross-site scripting,通常簡稱為XSS)發生在客戶端,可被用於進行竊取隱私、釣魚欺騙、竊取密碼、傳播惡意代碼等攻擊。

XSS攻擊使用到的技術主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對WEB伺服器雖無直接危害,但是它藉助網站進行傳播,使網站的使用用戶受到攻擊,導致網站用戶帳號被竊取,從而對網站也產生了較嚴重的危害。

XSS類型包括:

(1)非持久型跨站:即反射型跨站腳本漏洞,是目前最普遍的跨站類型。跨站代碼一般存在於鏈接中,請求這樣的鏈接時,跨站代碼經過服務端反射回來,這類跨站的代碼不存儲到服務端(比如資料庫中)。上面章節所舉的例子就是這類情況。

(2)持久型跨站:這是危害最直接的跨站類型,跨站代碼存儲於服務端(比如資料庫中)。常見情況是某用戶在論壇發貼,如果論壇沒有過濾用戶輸入的Javascript代碼數據,就會導致其他瀏覽此貼的用戶的瀏覽器會執行發貼人所嵌入的Javascript代碼。

(3)DOM跨站(DOM XSS):是一種發生在客戶端DOM(Document Object Model文檔對象模型)中的跨站漏洞,很大原因是因為客戶端腳本處理邏輯導致的安全問題。

XSS的危害包括:

(1)釣魚欺騙:最典型的就是利用目標網站的反射型跨站腳本漏洞將目標網站重定向到釣魚網站,或者注入釣魚JavaScript以監控目標網站的表單輸入,甚至發起基於DHTML更高級的釣魚攻擊方式。

(2)網站掛馬:跨站時利用IFrame嵌入隱藏的惡意網站或者將被攻擊者定向到惡意網站上,或者彈出惡意網站窗口等方式都可以進行掛馬攻擊。

(3)身份盜用:Cookie是用戶對於特定網站的身份驗證標志,XSS可以盜取到用戶的Cookie,從而利用該Cookie盜取用戶對該網站的操作許可權。如果一個網站管理員用戶Cookie被竊取,將會對網站引發巨大的危害。

(4)盜取網站用戶信息:當能夠竊取到用戶Cookie從而獲取到用戶身份使,攻擊者可以獲取到用戶對網站的操作許可權,從而查看用戶隱私信息。

(5)垃圾信息發送:比如在SNS社區中,利用XSS漏洞借用被攻擊者的身份發送大量的垃圾信息給特定的目標群。

(6)劫持用戶Web行為:一些高級的XSS攻擊甚至可以劫持用戶的Web行為,監視用戶的瀏覽歷史,發送與接收的數據等等。

(7)XSS蠕蟲:XSS 蠕蟲可以用來打 廣告 、刷流量、掛馬、惡作劇、破壞網上數據、實施DDoS攻擊等。

常用的防止XSS技術包括:

(1)與SQL注入防護的建議一樣,假定所有輸入都是可疑的,必須對所有輸入中的script、iframe等字樣進行嚴格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入介面,也包括HTTP請求中的Cookie中的變數,HTTP請求頭部中的變數等。

(2)不僅要驗證數據的類型,還要驗證其格式、長度、范圍和內容。

(3)不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。

(4)對輸出的數據也要檢查,資料庫里的值有可能會在一個大網站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。

(5)在發布應用程序之前測試所有已知的威脅。

常見的操作系統漏洞三、 弱口令漏洞

弱口令(weak password) 沒有嚴格和准確的定義,通常認為容易被別人(他們有可能對你很了解)猜測到或被解除工具解除的口令均為弱口令。設置密碼通常遵循以下原則:

(1)不使用空口令或系統預設的口令,這些口令眾所周之,為典型的弱口令。

(2)口令長度不小於8個字元。

(3)口令不應該為連續的某個字元(例如:AAAAAAAA)或重復某些字元的組合(例如:tzf.tzf.)。

(4)口令應該為以下四類字元的組合,大寫字母(A-Z)、小寫字母(a-z)、數字(0-9)和特殊字元。每類字元至少包含一個。如果某類字元只包含一個,那麼該字元不應為首字元或尾字元。

(5)口令中不應包含本人、父母、子女和配偶的姓名和出生日期、紀念日期、登錄名、E-mail地址等等與本人有關的信息,以及字典中的單詞。

(6)口令不應該為用數字或符號代替某些字母的單詞。

(7)口令應該易記且可以快速輸入,防止他人從你身後很容易看到你的輸入。

(8)至少90天內更換一次口令,防止未被發現的入侵者繼續使用該口令。

常見的操作系統漏洞四、 HTTP報頭追蹤漏洞

HTTP/1.1(RFC2616)規范定義了HTTP TRACE方法,主要是用於客戶端通過向Web伺服器提交TRACE請求來進行測試或獲得診斷信息。當Web伺服器啟用TRACE時,提交的請求頭會在伺服器響應的內容(Body)中完整的返回,其中HTTP頭很可能包括Session Token、Cookies或 其它 認證信息。攻擊者可以利用此漏洞來欺騙合法用戶並得到他們的私人信息。該漏洞往往與其它方式配合來進行有效攻擊,由於HTTP TRACE請求可以通過客戶瀏覽器腳本發起(如XMLHttpRequest),並可以通過DOM介面來訪問,因此很容易被攻擊者利用。

防禦HTTP報頭追蹤漏洞的方法通常禁用HTTP TRACE方法。

常見的操作系統漏洞五、 Struts2遠程命令執行漏洞

Apache Struts是一款建立Java web應用程序的開放源代碼架構。Apache Struts存在一個輸入過濾錯誤,如果遇到轉換錯誤可被利用注入和執行任意Java代碼。

網站存在遠程代碼執行漏洞的大部分原因是由於網站採用了Apache Struts Xwork作為網站應用框架,由於該軟體存在遠程代碼執高危漏洞,導致網站面臨安全風險。CNVD處置過諸多此類漏洞,例如:「GPS車載衛星定位系統」網站存在遠程命令執行漏洞(CNVD-2012-13934);Aspcms留言本遠程代碼執行漏洞(CNVD-2012-11590)等。

修復此類漏洞,只需到Apache官網升級Apache Struts到最新版本:http://struts.apache.org

常見的操作系統漏洞六、 框架釣魚漏洞(框架注入漏洞)

框架注入攻擊是針對Internet Explorer 5、Internet Explorer 6、與 Internet Explorer 7攻擊的一種。這種攻擊導致Internet Explorer不檢查結果框架的目的網站,因而允許任意代碼像Javascript或者VBScript跨框架存取。這種攻擊也發生在代碼透過多框架注入,肇因於腳本並不確認來自多框架的輸入。這種其他形式的框架注入會影響所有的不確認不受信任輸入的各廠商瀏覽器和腳本。

如果應用程序不要求不同的框架互相通信,就可以通過完全刪除框架名稱、使用匿名框架防止框架注入。但是,因為應用程序通常都要求框架之間相互通信,因此這種方法並不可行。 因此,通常使用命名框架,但在每個會話中使用不同的框架,並且使用無法預測的名稱。一種可行的方法是在每個基本的框架名稱後附加用戶的會話令牌,如main_display。

常見的操作系統漏洞七、 文件上傳漏洞

文件上傳漏洞通常由於網頁代碼中的文件上傳路徑變數過濾不嚴造成的,如果文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網站後門文件(webshell),進而遠程式控制制網站伺服器。

因此,在開發網站及應用程序過程中,需嚴格限制和校驗上傳的文件,禁止上傳惡意代碼的文件。同時限制相關目錄的執行許可權,防範webshell攻擊。

常見的操作系統漏洞八、 應用程序測試腳本泄露

由於測試腳本對提交的參數數據缺少充分過濾,遠程攻擊者可以利用洞以WEB進程許可權在系統上查看任意文件內容。防禦此類漏洞通常需嚴格過濾提交的數據,有效檢測攻擊。

常見的操作系統漏洞九、 私有IP地址泄露漏洞

IP地址是網路用戶的重要標示,是攻擊者進行攻擊前需要了解的。獲取的方法較多,攻擊者也會因不同的網路情況採取不同的方法,如:在區域網內使用Ping指令,Ping對方在網路中的名稱而獲得IP;在Internet上使用IP版的QQ直接顯示。最有效的辦法是截獲並分析對方的網路數據包。攻擊者可以找到並直接通過軟體解析截獲後的數據包的IP包頭信息,再根據這些信息了解具體的IP。

針對最有效的「數據包分析方法」而言,就可以安裝能夠自動去掉發送數據包包頭IP信息的一些軟體。不過使用這些軟體有些缺點,譬如:耗費資源嚴重,降低計算機性能;訪問一些論壇或者網站時會受影響;不適合網吧用戶使用等等。現在的個人用戶採用最普及隱藏IP的方法應該是使用代理,由於使用代理伺服器後,「轉址服務」會對發送出去的數據包有所修改,致使「數據包分析」的方法失效。一些容易泄漏用戶IP的網路軟體(QQ、MSN、IE等)都支持使用代理方式連接Internet,特別是QQ使用「ezProxy」等代理軟體連接後,IP版的QQ都無法顯示該IP地址。雖然代理可以有效地隱藏用戶IP,但攻擊者亦可以繞過代理,查找到對方的真實IP地址,用戶在何種情況下使用何種方法隱藏IP,也要因情況而論。

常見的操作系統漏洞十、 未加密登錄請求

由於Web配置不安全,登陸請求把諸如用戶名和密碼等敏感欄位未加密進行傳輸,攻擊者可以竊聽網路以劫獲這些敏感信息。建議進行例如SSH等的加密後再傳輸。

常見的操作系統漏洞十一、 敏感信息泄露漏洞

SQL注入、XSS、目錄遍歷、弱口令等均可導致敏感信息泄露,攻擊者可以通過漏洞獲得敏感信息。針對不同成因,防禦方式不同。

『柒』 Java的webservice中sql語句是在哪裡執行的

sql是在伺服器端執行的,對客戶端隱藏的。

『捌』 UPDATE型SQL注入漏洞一般會出現在哪裡多選

只有A和D。頭像如果是採用先上傳在確認的方式,是沒可能注入SQL的。密碼一般都會用MD5加密。也是沒辦法注入的。