常見網路攻擊掃盲~
筆者以前一直做web開發,但是對網路安全知之甚少,最近對網路安全有點感興趣,來篇水文掃盲,了解一下常見的web攻擊掃盲,
XSS攻擊
XSS攻擊:跨站腳本攻擊(Cross-Site Scripting),為了不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS,
跨站腳本攻擊(XSS),是最普遍的Web應用安全漏洞,這類漏洞能夠使得攻擊者嵌入惡意腳本代碼到正常用戶會訪問到的頁面中,當正常用戶訪問該頁面時,則可導致嵌入的惡意腳本代碼的執行,從而達到惡意攻擊用戶的目的,
攻擊者可以使用戶在瀏覽器中執行其預定義的惡意腳本,其導致的危害可想而知,如劫持用戶會話,插入惡意內容、重定向用戶、使用惡意軟體劫持用戶瀏覽器、繁殖XSS蠕蟲,甚至破壞網站、修改路由器配置資訊等,
原理
HTML是一種超文本標記語言,通過將一些字符特殊地對待來區別文本和標記,例如,小于符號(<)被看作是HTML標簽的開始,
型別
從攻擊代碼的作業方式可以分為三個型別:
(1)持久型跨站:最直接的危害型別,跨站代碼存盤在服務器(資料庫),
(2)非持久型跨站:反射型跨站腳本漏洞,最普遍的型別,用戶訪問服務器-跨站鏈接-回傳跨站代碼,
(3)DOM跨站(DOM XSS):DOM(document object model檔案物件模型),客戶端腳本處理邏輯導致的安全問題,
基于DOM的XSS漏洞是指受害者端的網頁腳本在修改本地頁面DOM環境時未進行合理的處置,而使得攻擊腳本被執行,在整個攻擊程序中,服務器回應的頁面并沒有發生變化,引起客戶端腳本執行結果差異的原因是對本地DOM的惡意篡改利用,
DDOS和Dos攻擊
DoS攻擊
DoS是Denial of Service的簡稱,即拒絕服務,造成DoS的攻擊行為被稱為DoS攻擊,其目的是使計算機或網路無法提供正常的服務,最常見的DoS攻擊有計算機網路寬帶攻擊和連通性攻擊,
DoS攻擊是指故意的攻擊網路協議實作的缺陷或直接通過野蠻手段殘忍地耗盡被攻擊物件的資源,目的是讓目標計算機或網路無法提供正常的服務或資源訪問,使目標系統服務系統停止回應甚至崩潰,而在此攻擊中并不包括侵入目標服務器或目標網路設備,這些服務資源包括網路帶寬,檔案系統空間容量,開放的行程或者允許的連接,這種攻擊會導致資源的匱乏,無論計算機的處理速度多快、記憶體容量多大、網路帶寬的速度多快都無法避免這種攻擊帶來的后果,
DDoS攻擊
分布式拒絕服務攻擊(英文意思是Distributed Denial of Service,簡稱DDoS)是指處于不同位置的多個攻擊者同時向一個或數個目標發動攻擊,或者一個攻擊者控制了位于不同位置的多臺機器并利用這些機器對受害者同時實施攻擊,由于攻擊的發出點是分布在不同地方的,這類攻擊稱為分布式拒絕服務攻擊,其中的攻擊者可以有多個,
分布式拒絕服務攻擊原理分布式拒絕服務攻擊DDoS是一種基于DoS的特殊形式的拒絕服務攻擊,是一種分布的、協同的大規模攻擊方式,單一的DoS攻擊一般是采用一對一方式的,它利用網路協議和作業系統的一些缺陷,采用欺騙和偽裝的策略來進行網路攻擊,使網站服務器充斥大量要求回復的資訊,消耗網路帶寬或系統資源,導致網路或系統不勝負荷以至于癱瘓而停止提供正常的網路服務,與DoS攻擊由單臺主機發起攻擊相比較,分布式拒絕服務攻擊DDoS是借助數百、甚至數千臺被入侵后安裝了攻擊行程的主機同時發起的集團行為,
攻擊手段
這里只介紹一種方式
SYN Flood攻擊
在三次握手程序中,服務器發送 SYN-ACK 之后,收到客戶端的 ACK 之前的 TCP 連接稱為半連接(half-open connect),此時服務器處于 SYN_RCVD 狀態,當收到 ACK 后,服務器才能轉入 ESTABLISHED 狀態.
SYN攻擊指的是,攻擊客戶端在短時間內偽造大量不存在的IP地址,向服務器不斷地發送SYN包,服務器回復確認包,并等待客戶的確認,由于源地址是不存在的,服務器需要不斷的重發直至超時,這些偽造的SYN包將長時間占用未連接佇列,正常的SYN請求被丟棄,導致目標系統運行緩慢,嚴重者會引起網路堵塞甚至系統癱瘓,
SQL注入
SQL注入即是指web應用程式對用戶輸入資料的合法性沒有判斷或過濾不嚴,攻擊者可以在web應用程式中事先定義好的查詢陳述句的結尾上添加額外的SQL陳述句,在管理員不知情的情況下實作非法操作,以此來實作欺騙資料庫服務器執行非授權的任意查詢,從而進一步得到相應的資料資訊,
SQL是操作資料庫資料的結構化查詢語言,網頁的應用資料和后臺資料庫中的資料進行互動時會采用SQL,而SQL注入是將Web頁面的原URL、表單域或資料包輸入的引數,修改拼接成SQL陳述句,傳遞給Web服務器,進而傳給資料庫服務器以執行資料庫命令,如Web應用程式的開發人員對用戶所輸入的資料或cookie等內容不進行過濾或驗證(即存在注入點)就直接傳輸給資料庫,就可能導致拼接的SQL被執行,獲取對資料庫的資訊以及提權,發生SQL注入攻擊,
例:
在登錄時需要查詢用戶
select * FROM user where username='admin' and password='123'
如果密碼被改成OR 1=1
select * FROM user where username='admin' and password='123'OR 1=1
1=1恒成立,這樣就跳過了驗證
CSRF攻擊
跨站請求偽造(英語:Cross-site request forgery),也被稱為 one-click attack 或者 session riding,通常縮寫為 CSRF 或者 XSRF, 是一種挾制用戶在當前已登錄的Web應用程式上執行非本意的操作的攻擊方法,跟跨網站腳本(XSS)相比,XSS 利用的是用戶對指定網站的信任,CSRF 利用的是網站對用戶網頁瀏覽器的信任,
跨站請求攻擊,簡單地說,是攻擊者通過一些技術手段欺騙用戶的瀏覽器去訪問一個自己曾經認證過的網站并運行一些操作(如發郵件,發訊息,甚至財產操作如轉賬和購買商品),由于瀏覽器曾經認證過,所以被訪問的網站會認為是真正的用戶操作而去運行,這利用了web中用戶身份驗證的一個漏洞:簡單的身份驗證只能保證請求發自某個用戶的瀏覽器,卻不能保證請求本身是用戶自愿發出的,
例子
假如一家銀行用以運行轉賬操作的URL地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
那么,一個惡意攻擊者可以在另一個網站上放置如下代碼: ·<img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">
如果有賬戶名為Alice的用戶訪問了惡意站點,而她之前剛訪問過銀行不久,登錄資訊尚未過期,那么她就會損失1000資金,
這種惡意的網址可以有很多種形式,藏身于網頁中的許多地方,此外,攻擊者也不需要控制放置惡意網址的網站,例如他可以將這種地址藏在論壇,博客等任何用戶生成內容的網站中,這意味著如果服務端沒有合適的防御措施的話,用戶即使訪問熟悉的可信網站也有受攻擊的危險,
透過例子能夠看出,攻擊者并不能通過CSRF攻擊來直接獲取用戶的賬戶控制權,也不能直接竊取用戶的任何資訊,他們能做到的,是欺騙用戶瀏覽器,讓其以用戶的名義運行操作,
水文畢!~
參考
常見的Web攻擊手段-整理
百度百科
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/291287.html
標籤:其他
