WEB安全知识点
SQL注入:
原理:
指web應用程序對用戶輸入的數據合法性沒有判斷,導致攻擊者可以構造不同的sql語句來對數據庫數據庫的操作。(web應用程序對用戶輸入的數據沒有進行過濾,或者過濾不嚴,就把sql語句帶進數據庫中進行查詢)。
Sql注入漏洞的產生需要滿足兩個條件:
①參數用戶可控:前端傳給后端的參數內容是用戶可以控制的。
②參數代入數據庫查詢:傳入的參數拼接到sql語句,且帶入數據庫查詢。
危害
①數據庫信息泄漏:數據庫中存放的用戶的隱私信息的泄露。
②網頁篡改:通過操作數據庫對特定網頁進行篡改。
③網站被掛馬,傳播惡意軟件:修改數據庫一些字段的值,嵌入網馬鏈接,進行掛馬攻擊。
④數據庫被惡意操作:數據庫服務器被攻擊,數據庫的系統管理員帳戶被竄改。
⑤服務器被遠程控制,被安裝后門。經由數據庫服務器提供的操作系統支持,讓黑客得以修改或控制操作系統。
⑥破壞硬盤數據,癱瘓全系統。
修復建議
①過濾危險字符:例如,采用正則表達式匹配union、sleep、load_file等關鍵字,如果匹配到,則退出程序。
②使用預編譯語句:使用PDO預編譯語句,需要注意,不要將變量直接拼接到PDO語句中,而是使用占位符進行數據庫的增加、刪除、修改、查詢。
③特殊字符轉義、使用嚴格的數據類型。
文件上傳:
原理
就是未對用戶上傳的文件進行檢查和過濾,導致某些別有用心的用戶上傳了一些惡意代碼或文件(asp、php、jsp等),從而控制了網站。(當文件上傳時,如果服務端的腳本語言沒有對上傳的文件進行檢查和過濾,那假如,滲透者直接上傳惡意代碼文件,那么就有可能直接控制整個網站,或者說以此為跳板,直接拿下服務器,這就是文件上傳漏洞。)
危害
非法用戶可以利用惡意腳本文件控制整個網站,甚至控制服務器。這個惡意腳本文件,又稱為webshell,也可將webshell腳本稱為一種網頁后門,webshell腳本具有很強大的功能,比如查看服務器目錄、服務器中的文件,執行繞過命令等。
修復建議
①通過白名單方式判斷文件后綴是否合法。
②對上傳的文件進行重命名。
XSS跨站:
原理
惡意攻擊者往Web頁面里嵌入腳本代碼(通常是JavaScript編寫的惡意代碼),當用戶瀏覽該頁之時,嵌入其中Web里面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。(惡意攻擊者利用網站沒有對用戶提交數據進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁面中去。)
危害
①盜取用戶Cookie。
②修改網頁內容。
③網站掛馬。
④利用網站重定向。
⑤XSS蠕蟲。
修復建議
①過濾輸入的數據:包括”’”、”<”、“<”、“>”、“on”等非法字符。
②對輸出到頁面的數據進行相應的編碼轉換,包括html實體編碼、javascript編碼等。
文件包含:
原理
開發人員將需要重復調用的函數寫入一個文件,對該文件進行包含是產生的操作。這樣編寫代碼能減少代碼冗余,降低代碼后期維護難度,保證網站整體風格統一:導航欄、底部footer欄等。文件包含函數加載的參數沒有經過過濾或嚴格定義,可以被用戶控制,包含其他惡意文件,導致了執行非預期代碼。
危害
①獲取敏感信息
②執行任意命令
③獲取服務器權限
修復建議
①建議白名單。
②指定訪問一定的路徑,再將參數拼接到路徑當中
反序列化:可以執行任意的命令。耗盡 CPU 資源影響可用性。
代碼執行:
原理:應用未對用戶輸入做嚴格的檢查過濾,導致用戶輸入的參數被當成命令來執行。攻擊者可以任意執行系統命令,屬于高危漏洞之一,也屬于代碼執行的范疇。
危害
①繼承web服務程序的權限去執行系統命令或讀寫文件。
②反彈shell,獲得目標服務器的權限。
③進一步內網滲透。
修復建議
①盡量不要使用命令執行函數。
②客戶端提交的變量在進入執行命令函數前要做好過濾和檢測。
③在使用動態函數之前,確保使用函數是指定的函數之一。
④對hph語言而言,不能完全控制的危險函數最好不要使用。
邏輯安全:
原理
值攻擊者利用業務的設計缺陷,獲取敏感信息或破壞業務的完整性。一般出現在密碼修改、越權訪問、密碼找回、交易支付等功能處。
危害
任意密碼修改、越權訪問、密碼任意找回、交易支付金額任意修改…
修復建議
關于越權訪問:越權訪問漏洞產生主要原因是沒有對用戶的身份做判斷和控制,防范這種漏洞時,可以通過session來控制。例如,在用戶登錄時,將username或uid寫入到session中,當用戶查看個人信息時,從session中取出信息,而不是從GET或POST取出username,name此時取到的username就是沒有篡改的。
未授權訪問:不用賬號密碼直接登錄后臺
CSRF(跨站請求偽造):
危害
攻擊者盜用了你的身份,以你的名義發送惡意請求。CSRF能夠做的事情包括:以你名義發送郵件,發消息,盜取你的賬號,甚至于購買商品,虛擬貨幣轉賬......造成的問題包括:個人隱私泄露以及財產安全。
修復
客戶端頁面增加偽隨機數,驗證碼,服務端核對令牌
SSRF(服務端請求偽造):
原理
大都是由于服務器提供了從其他服務器應用獲取數據的功能且沒有對目標地址做過濾與限制。比如從指定URL地址獲取網頁文本內容,加載指定地址的圖片,下載等等。利用的是服務端的請求偽造。SSRF是利用存在缺陷的web應用作為代理攻擊遠程和本地的服務器。
危害
攻擊者就可以利用該漏洞繞過防火墻等訪問限制,進而將受感染或存在漏洞的服務器作為代理進行端口掃描,甚至是訪問內部系統數據。
預防建議
① 限制請求的端口只能為web端口,只允許訪問HTTP和HTTPS請求。
② 限制不能訪問內網的IP,以防止對內網進行攻擊。
③ 屏蔽返回的詳細信息。
④ 限制請求的端口為HTTP常用的端口,比如 80,443,8080,8088等。
?
目錄遍歷:
危害
目錄遍歷攻擊又稱目錄穿越、惡意瀏覽、文件泄露等,攻擊者利用系統漏洞訪問合法應用之外的數據或文件目錄,導致數據泄露或被篡改。
預防
1.對用戶的輸入進行驗證,特別是路徑替代字符如“../”和“~/”。
2.盡可能采用白名單的形式,驗證所有的輸入。
3.合理配置Web服務器的目錄權限。
4.當程序出錯時,不要顯示內部相關配置細節。
5.對用戶傳過來的文件名參數進行統一編碼,對包含惡意字符或者空字符的參數進行拒絕。
文件讀取/下載:
危害
任意文件讀取/下載漏洞,不僅會泄露網站的目錄結構,而且攻擊者可以直接獲得網站文件的內容。攻擊者可以因此獲取到很多機密的文件,比如配置文件,比如 /etc/passwd、/root/.bash_history文件等。
修復的方法:
- 過濾點(.)使用戶在url中不能回溯上級目錄
- 正則嚴格判斷用戶輸入參數的格式
- php.ini 配置open_basedir限定文件訪問范圍
命令執行:
原理:應用未對用戶輸入做嚴格的檢查過濾,導致用戶輸入的參數被當成命令來執行。攻擊者可以任意執行系統命令,屬于高危漏洞之一,也屬于代碼執行的范疇。
危害
①繼承web服務程序的權限去執行系統命令或讀寫文件。
②反彈shell,獲得目標服務器的權限。
③進一步內網滲透。
修復建議
①盡量不要使用命令執行函數。
②客戶端提交的變量在進入執行命令函數前要做好過濾和檢測。
③在使用動態函數之前,確保使用函數是指定的函數之一。
④對hph語言而言,不能完全控制的危險函數最好不要使用。
?
XXE安全:
原理
XXE漏洞(XML 外部實體注入),XML用于標記電子文件使其具有結構性的標記語言,可以用來標記數據、定義數據類型,是一種允許用戶對自己的標記語言進行定義的源語言。XML文檔結構包括XML聲明、DTD文檔類型定義(可選)、文檔元素。
危害
①讀取任意文件。
②執行系統命令。
③探測內網端口。
④攻擊內網網站。
修復建議
①進制使用外部實體,例如:
PHP:libxml_disable_entity_loader(true)
②過濾用戶提交的xml數據,防止出現非法內容。
?
暴力破解:
原理:由于服務器端沒有做限制,導致攻擊者可以通過暴力手段破解所需信息,如用戶名、密碼、驗證碼等。暴力破解需要一個強大的字典,如4位數字的驗證碼,那么暴力破解的范圍就是0000~9999,暴力破解的關鍵在于字典的大小。
危害
①用戶密碼被重置。
②敏感目錄、參數被枚舉。
③用戶訂單被枚舉。
修復建議
① 如果用戶登錄次數超過設置的閾值,則鎖定賬號。
② 如果某個IP登陸次數超過設置的閾值,則鎖定IP。但存在一個問題,如果多個用戶使用的是同一個IP,則會造成其他用戶也不能登錄。
其他漏洞:
SSLStrip攻擊
OpenSSL Heartbleed安全漏洞
CCS注入漏洞
證書有效性驗證漏洞
框架或應用漏洞
WordPress 4.7 / 4.7.1:REST API 內容注入漏洞
Drupal Module RESTWS 7.x:Remote PHP Code Execution
SugarCRM 6.5.23:REST PHP Object Injection Exploit
Apache Struts:REST Plugin With Dynamic Method Invocation Remote Code Execution
Oracle GlassFish Server:REST CSRF
QQ Browser 9.6:API 權限控制問題導致泄露隱私模式
Hacking Docker:Registry API 未授權訪問
?
目錄遍歷漏洞和文件讀取漏洞的區別
- 目錄遍歷漏洞會導致源碼結構泄露
- 文件讀取漏洞會導致源碼內容獲取
文件包含和文件讀取漏洞的區別是:
- 前者表示執行了非預期的程序,比如黑客事先通過文件上傳漏洞上傳的木馬程序、服務器本身存在的一些程序等;
- 后者表示預覽和下載了非法路徑下的文件內容,比如系統信息、程序源碼、密鑰賬號等信息。
總結
- 上一篇: 港版支付宝注册用户达150万 普及仍面临
- 下一篇: DataSheet IFI9486