漏洞跨站腳本
『壹』 跨站腳本攻擊是什麼意思
XSS,跨站腳本攻擊,Cross-Site
Scripting,為了和前端的CSS避免重名,簡稱為XSS,是指通過技術手段,向正常用戶請求的HTML頁面中插入惡意腳本,執行。
這種攻擊主要是用於信息竊取和破壞等目的。在防範XSS上,主要就是通過對用戶輸入的數據做過濾或者或者轉義,可以使用框架提供的工具類HTML
Util,另外前端在瀏覽器展示數據的時候,要使用安全的API展示數據。比如使用inner text而不是inner HTML。
『貳』 網站有跨站腳本攻擊漏洞、SQL注入漏洞(盲注)、IIS短文件名泄露漏洞、SQL注入漏洞等漏洞,如何修復
網站有跨站腳本攻擊漏洞:在IIS里增加只接收允許站點的數據提交
SQL注入漏洞(盲注)、SQL注入漏洞等漏洞:基本上都是程序的漏洞,需要將所有接收到參數進行校驗,防止被注入
IIS短文件名泄露漏洞:安裝IIS相應補丁
『叄』 什麼是XSS跨站腳本攻擊
什麼是XSS攻擊XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web裡面的html代碼會被執行,從而達到惡意攻擊用戶的特殊目的。XSS屬於被動式的攻擊,因為其被動且不好利用,所以許多人常忽略其危害性。而本文主要講的是利用XSS得到目標伺服器的shell。技術雖然是老技術,但是其思路希望對大家有幫助。 [編輯本段]如何尋找XSS漏洞就個人而言,我把XSS攻擊分成兩類,一類是來自內部的攻擊,主要指的是利用程序自身的漏洞,構造跨站語句,如:dvbbs的showerror.asp存在的跨站漏洞。另一類則是來來自外部的攻擊,主要指的自己構造XSS跨站漏洞網頁或者尋找非目標機以外的有跨站漏洞的網頁。如當我們要滲透一個站點,我們自己構造一個有跨站漏洞的網頁,然後構造跨站語句,通過結合其它技術,如社會工程學等,欺騙目標伺服器的管理員打開。
『肆』 常見的漏洞類型有哪些
一、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 到最新版本
六、框架釣魚漏洞(框架注入漏洞)
框架注入攻擊是針對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、目錄遍歷、弱口令等均可導致敏感信息泄露,攻擊者可以通過漏洞獲得敏感信息。針對不同成因,防禦方式不同。
『伍』 跨站腳本攻擊有哪些類型
1、持久型跨站:最直接的危害類型,跨站代碼存儲在伺服器(資料庫)。
2、非持久型跨站:反射型跨站腳本漏洞,最普遍的類型。用戶訪問伺服器-跨站鏈接-返回跨站代碼。
3、DOM跨站(DOM XSS):DOM(document object model文檔對象模型),客戶端腳本處理邏輯導致的安全問題。
(5)漏洞跨站腳本擴展閱讀:
跨站腳本攻擊產生的原因是網站過於相信用戶的輸入,那麼解決的辦法也很直接,就是從根本上不相信用戶的任何輸入。一個安全的網站應當對任何用戶的任何輸入都要進行檢查,特別是對用戶提交到伺服器中保存的數據,更要做篩選。
這種攻擊與反射型攻擊不同的是,它會把自己的攻擊代碼保存在網站的伺服器上,這樣,任何訪問了這個頁面的用戶,都會受到這個攻擊。
『陸』 常見的網路安全漏洞有哪些
第一:注入漏洞
由於其普遍性和嚴重性,注入漏洞位居漏洞排名第一位。常見的注入漏洞包括SQL、LDAP、OS命令、ORM和OGML。用戶可以通過任何輸入點輸入構建的惡意代碼,如果應用程序沒有嚴格過濾用戶的輸入,一旦輸入的惡意代碼作為命令或者查詢的一部分被發送到解析器,就可能導致注入漏洞。
第二:跨站腳本漏洞
XSS漏洞的全稱是跨站點腳本漏洞。XSS漏洞是網路應用程序中常見的安全漏洞,它允許用戶將惡意代碼植入網頁,當其他用戶訪問此頁面時,植入的惡意腳本將在其他用戶的客戶端執行。危害有很多,客戶端用戶的信息可以通過XSS漏洞獲取,比如用戶登錄的Cookie信息;信息可以通過XSS蝸牛傳播;木馬可以植入客戶端;可以結合其他漏洞攻擊伺服器,並在伺服器中植入特洛伊木馬。
第三、文件上傳漏洞
造成文件上傳漏洞的主要原因是應用程序中有上傳功能,但上傳的文件沒有通過嚴格的合法性檢查或者檢查功能有缺陷,導致木馬文件上傳到伺服器。文件上傳漏洞危害極大,因為惡意代碼可以直接上傳到伺服器,可能造成伺服器網頁修改、網站暫停、伺服器遠程式控制制、後門安裝等嚴重後果。
第四、文件包含漏洞
文件包含漏洞中包含的文件參數沒有過濾或嚴格定義,參數可以由用戶控制,可能包含意外文件。如果文件中存在惡意代碼,無論文件是什麼後綴類型,文件中的惡意代碼都會被解析執行,導致文件包含漏洞。
第五、命令執行漏洞
應用程序的某些函數需要調用可以執行系統命令的函數。如果這些功能或者功能的參數可以被用戶控制,那麼惡意的命令就有可能通過命令連接器拼接成正常的功能,從而可以隨意執行系統命令。這就是命令執行漏洞,屬於高風險漏洞之一。
『柒』 怎麼處理跨站腳本攻擊漏洞
可以在騰訊智慧安全頁面申請使用騰訊御點
然後使用這個軟體上面的修復漏洞功能
直接對電腦的漏洞進行檢測和修復就可以了
『捌』 【web安全】xss跨站腳本攻擊有哪些
xss攻擊可以分成兩種類型:
1.非持久型攻擊
2.持久型攻擊
非持久型xss攻擊:顧名思義,非持久型xss攻擊是一次性的,僅對當次的頁面訪問產生影響。非持久型xss攻擊要求用戶訪問一個被攻擊者篡改後的鏈接,用戶訪問該鏈接時,被植入的攻擊腳本被用戶游覽器執行,從而達到攻擊目的。
持久型xss攻擊:持久型xss,會把攻擊者的數據存儲在伺服器端,攻擊行為將伴隨著攻擊數據一直存在。
也可以分成三類:
反射型:經過後端,不經過資料庫
存儲型:經過後端,經過資料庫
DOM:不經過後端,DOM—based XSS漏洞是基於文檔對象模型Document Objeet Model,DOM)的一種漏洞,dom - xss是通過url傳入參數去控制觸發的。
『玖』 跨站腳本攻擊漏洞需要用到什麼編程語言
這里有5種編程語言,可以對網路安全的問題有所幫助。
C和C++
如果是在網路安全領域,C和C++是相對重要的最基礎的編程語言,這些語言提供了對底層IT基礎設施(如RAM和系統進程)的訪問,如果保護不好,黑客可以很容易地利用這些基礎設施。
C編程語言是大多數操作系統的主幹。它是一種簡潔、靈活和高效的語言,可用於完成多種任務,如加密、圖像處理和socket 網路。
從本質上講,C++通常被認為是C的大哥,它是由crack、meth和steroids混合編譯而成的。而C++是一種主要基於C的源代碼的很棒的語言。有幾個使用C++創建的網路安全程序。例如,Network Mapper,就是是用C+創建的。
下面是C+的創建者Bjarne Stroustrup的一句話:
"C使你很容易射中自己的腳;C+使它變得更難,但當你這樣做時,它會把你的整個腿都炸掉。"
如果你具有使用C/C++編程語言的經驗,你將知道如何應對針對計算環境中較低級別操作的攻擊。
PYTHON
作為一種高級編程語言,Python越來越受到網路專家的歡迎。它之所以吸引人,主要是因為它代碼的可讀性、語法清晰和簡單,以及大量庫的可用性。
因此,無論你想做什麼任務,你都可以使用Python輕松完成任務。例如,你可以使用該語言將TCP數據包發送到計算機,執行惡意軟體分析,並創建入侵檢測系統,而對第三方工具的依賴性最小。
然而,與C/C++不同,Python並不是底層的;因此,它可能無法為提供足夠硬體資源可見性。
學習Python用於網路安全將使你在職業生涯中占據優勢。你將具備編程技能,可以幫助你識別漏洞並發現如何解決它們。
JAVASCRIPT
JavaScript是一種高級編程語言,通常被稱為Web的「通用語言」。JavaScript是支持Internet的核心技術。首先,它是為網頁添加交互性的語言。盡管JavaScript最初僅在Web瀏覽器的客戶端實現,但現在可以在其他類型的主機基礎結構中使用該語言,例如資料庫中的伺服器端和PDF程序等離線應用程序。
因此,由於它的廣泛使用,學習JavaScript可以讓你比黑客領先一步。 你將了解網站和其他應用程序如何工作的概念以及用於抵禦惡意用戶的最佳設計。例如,跨站點腳本是一種基於JavaScript的攻擊,涉及攻擊者在Web應用程序中植入惡意代碼。
如果你有使用JavaScript編程語言的經驗,則可以防止發生此類攻擊。
PHP
PHP是用於開發網站的伺服器端編程語言。由於大多數網站都是使用PHP創建的,因此學習該語言可以讓你了解如何抵禦入侵者。
例如,DDoS(拒絕服務)攻擊通常會嘗試使Web應用程序對預期用戶不可用。
藉助PHP編程知識,再加上JavaScript等其他技術的技能,你可以實現可靠的解決方案來保護Web應用程序。
SQL
SQL(結構化查詢語言)主要用於管理存儲在資料庫中的數據。由於當前數據存儲系統的爆炸式增長,SQL被廣泛用於維護和檢索數據。
同樣,黑客越來越多地編排語言來破壞或泄露存儲的數據。例如,SQL注入攻擊涉及利用SQL漏洞來竊取或修改資料庫中保存的數據。因此,充分了解SQL語言對於網路安全至關重要。
總結
以上並不是網路安全最佳編程語言的詳盡列表。根據你的具體用例,你可能會發現一種語言比其他語言更適合你的工作。
例如,如果你想專注於保護Web應用程序的前端,那麼學習JavaScript可能是你理想的選擇。
盡管如此,要成為一個全面的網路極客,你需要採用