1. 程式人生 > >【筆記】網易微專業-Web安全工程師-02.WEB安全基礎

【筆記】網易微專業-Web安全工程師-02.WEB安全基礎

安全基礎 top 用戶操作 ram 包含 itl 操作 bash 執行

課程概述:

萬丈高樓平地起,樓能蓋多高,主要看地基打的好不好。學習任何知識都是一樣的,打好基礎是關鍵,通過本課的學習,你將了解一些常見的Web漏洞,以及這些漏洞的原理和危害,打好地基,為後面建設高樓大廈做好準備。

課程大綱:

第一章.無處不在的安全問題

第一節.常見的安全事件

第二章.常見Web漏洞解析

第一節.XSS

第二節.CSRF

第三節.點擊劫持

第四節.URL跳轉

第五節.SQL註入

第六節.命令註入

第七節.文件操作漏洞

筆記心得:

1. 無處不在的安全問題

“釣魚”:利用各種手段,仿冒真實網站的URL地址以及頁面內容,或利用真實網站服務器程序上的漏洞在站點的某些網頁中插入危險的HTML代碼,以此來騙取用戶銀行或信用卡賬號、密碼等私人資料。

“篡改”網頁:谷歌搜索intitle:hacked by可以搜索出曾經被黑過的網站,搜索引擎語法還有:Intext/Site等

“暗鏈”:一種是你主動隱藏於別人網站的鏈接,或許你是做網站的,或許你曾經擁有某個網站的後臺,能夠添加上去(提高SEO);還有一種情況是別人盜取你的模版,但是上面存在很多你的絕對地址,這樣就導致了暗鏈。

“webshell”:以asp、php、jsp或者cgi等網頁文件形式存在的一種命令執行環境,也可以將其稱做為一種網頁後門。黑客在入侵了一個網站後,通常會將asp或php後門文件與網站服務器WEB目錄下正常的網頁文件混在一起,然後就可以使用瀏覽器來訪問asp或者php後門,得到一個命令執行環境,以達到控制網站服務器的目的。webshell可以穿越服務器防火墻,由於與被控制的服務器或遠程過80端口傳遞的,因此不會被防火墻攔截。並且使用webshell一般不會在系統日誌中留下記錄,只會在網站的web日誌中留下一些數據提交記錄,沒有經驗的管理員是很難看出入侵痕跡的。

技術分享圖片


2. 常見web漏洞解析

這裏只要簡要介紹一些這些概念,具體的原理,案例,防禦手段,會在後續中詳細說明。

2.1 XSS

Cross Site Script:跨站腳本攻擊

攻擊者向有XSS漏洞的網站中輸入(傳入)惡意的HTML代碼,當其它用戶瀏覽該網站時,這段HTML代碼會自動執行,從而達到攻擊的目的。如,盜取用戶Cookie、破壞頁面結構、重定向到其它網站等。理論上,所有可輸入的地方沒有對輸入數據進行處理的話,都會存在XSS漏洞。

存儲型 反射型
DOM型
觸發過程
1. 構造XSS(攻擊者)2. 訪問(用戶) 訪問攜帶XSS的鏈接 訪問URL
數據存儲
數據庫 URL URL
誰來輸出 後端WEB
後端WEB 前段JS
輸出位置
HTTP響應 HTTP響應 動態構造的DOM節點


存儲型:持久化,代碼是存儲在服務器中的,例如黑客提交了一篇帶惡意腳本的博客,過濾不嚴時被存儲在服務器中,當其它用戶訪問時,就會觸發腳本,執行惡意操作。受害者較廣。

反射型:非持久化,需要欺騙用戶自己去點擊鏈接才能觸發XSS代碼,例如對於網站W的用戶U,不小心點擊了一個鏈接,暗中將他的cookie發送到由攻擊者構建的網站。受害者為少數用戶;

DOM型:取決於輸出位置,並不取決於輸出環境,DOM XSS 是由於瀏覽器解析機制導致的漏洞,服務器不參與,而存儲型與反射型都需要服務器響應參與。


2.2 CSRF

Cross Site Request Forgery 跨站請求偽造

偽裝來自受信任用戶的請求來利用受信任的網站,或者說利用用戶已登錄的身份(cookie),偽裝成用戶操作。

舉個例子:用戶A正在XX銀行的網站上進行操作,突然收到一個誘惑的圖片鏈接,A隨手一點,果然看到某日本女星的誘惑寫真,可是過了一會兒收到短信提醒,已經轉出1000元至B賬戶,這當中發生了什麽?可能的方法是:B構建了一個長寬都為0的頁面,並設置隱藏,當A點擊圖片鏈接時,圖片加載時觸發了表單提交操作(轉賬1000元),由於當前cookie還生效,因此提交成功。


2.3 點擊劫持

一種視覺上的欺騙手段。大概有兩種方式,一是攻擊者使用一個透明的iframe,覆蓋在一個網頁上,然後誘使用戶在該頁面上進行操作,此時用戶將在不知情的情況下點擊透明的iframe頁面;二是攻擊者使用一張圖片覆蓋在網頁,遮擋網頁原有位置的含義;

tip:很多通關小遊戲就是利用這些方法,讓用戶在玩遊戲的過程中,誘導用戶點擊某個區域,提交信息。


2.4 URL跳轉漏洞

利用用戶信任的網站,跳轉到惡意的網站。

例如,在一個看起來很常見的網址鏈接後加上惡意鏈接

http://mail.qq.com/......&url=http://black.com

現在很多惡意鏈接可以進一步偽裝成短鏈接的形式t.cn/black,更具迷惑性。

查看網頁源代碼,找出跳轉鏈接 url.php?url=......

幾種跳轉方式:

Header頭:header("location: ".$target);

JS:<script>window.location.href=\"$target\"</script>

META標簽:http-equiv="Refresh" content="5"; url=...


2.5 SQL註入

本質:數據和代碼未分離,即數據當做代碼來執行

怎麽理解呢?舉個例子,當我們忘記一個網站的密碼時,不妨試試萬能密碼admin‘--,也許就能不用密碼而登錄,這是為什麽?這是因為服務器可能在驗證用戶時執行了以下語句:

select * from users where user_name = ‘$NAME‘ and password = ‘$PWD‘;

這就變成了:

select * from users where user_name = ‘admin‘-- and password = ‘$PWD‘;

SQL註入有兩個條件:一是可以控制輸入的數據;二是服務器拼接SQL執行;


2.6 命令註入

windows的DOS和linux的Bash有很多系統命令可以利用

如:ipconifg/net user/dir/find等

執行過程:

a. web調用可執行系統命令的函數,如PHP中的system/exec/eval等;

b. 函數或函數的參數可控;

c. 拼接註入命令;

舉個例子:常用的輸入網址查看ip的網頁,如果輸入www.baidu.com && net user,則由於&&的作用,就有可能返回系統用戶信息;


2.7 文件漏洞

很多網站提供用戶上傳頭像,附件等文件,也提供下載app或exe等操作,攻擊者可利用這些操作實現上傳webshell和木馬等,或者下載web上的任意文件和代碼等;

文件上傳:上傳php文件,在瀏覽器地址欄裏輸入執行;

文件下載:解析下載請求地址,修改並執行;

文件包含:在通過PHP的函數引入文件時,由於傳入的文件名沒有經過合理的校驗,從而操作了預想之外的文件,就可能導致意外的文件泄露甚至惡意的代碼註入。利用include/require/fopen/allow_url_include等操作。

【筆記】網易微專業-Web安全工程師-02.WEB安全基礎