Web安全攻防的學習——10—(存儲型XSS測試、環境搭建、定向挖掘XSS漏洞、CSRF原理介紹、文件上傳繞過驗證常用方式)

1、存儲型XSS測試

環境搭建
1.下載ROCBOSS:https://www.rocboss.com/
2.按照文檔進行安裝

將解壓後文件放入phpstudy中的路徑中:
在這裏插入圖片描述
打開之前使用的Phpstudy軟件,開啓Apache和Mysql的服務。
在這裏插入圖片描述
此時網頁還不顯示任何信息,需要進入安裝過程
1、修改pconline的配置文件
在這裏插入圖片描述
在這裏插入圖片描述
2、打開Webyog SQLyog這個軟件,新建命名爲:rocboss_2_1的數據庫,導入install.sql這個數據庫文件。
在這裏插入圖片描述
在這裏插入圖片描述
執行完成之後,數據庫rocboss_2_1中顯示導入的數據
在這裏插入圖片描述
此時數據庫配置完成,再次刷新網頁,查看效果:
在這裏插入圖片描述
登錄(默認管理員賬號 admin 123456),可以修改管理員密碼。 此時所需要的設置都已經完成,可以開始定向挖掘的學習了。

2、定向挖掘XSS漏洞

XSS漏洞可以存在於個人資料出,文章發表處或者留言評論處
在這裏插入圖片描述
黑名單審計
私信位置沒有被實體化,可以進行XSS,但是被黑名單過濾

查看system\util\Filter.php文件:
沒有過濾details和ontaggle
在這裏插入圖片描述
在這裏插入圖片描述
因爲檢查出沒有過濾details和ontaggle這兩個事件,我們可以使用這部分內容來攻擊。

繞過過濾,觸發XSS

details open οntοggle=eval("\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x3aalert('xss')")><"

上面這部分代碼輸入在私信窗口可以實現css攻擊。

另一種方法:
在Kali虛擬機中用XSS工具進行測試URL的攻擊點
在這裏插入圖片描述

3、CSRF原理介紹

CSRF漏洞定義
CSRF(cross-site request forery,跨站請求僞造),也被稱爲one click attack或者session riding,通過縮寫爲CSRF或者XSRF。

而XSS又叫CSS(Cross-SiteScripting跨站腳本攻擊)爲了不和css層疊樣式表混淆,所以改成了XSS。XSS是將惡意的代碼插入到html頁面中,當用戶瀏覽頁面時,插入的html代碼會被執行,從而達到最終目的。

XSS與CSRF區別

  • 1.XSS利用站點內的信任用戶,盜取cookie
  • 2.CSRF通過僞裝成受信任用戶請求信任的網站

CSRF漏洞原理
利用目標用戶的合法身份,以目標用戶的名字執行某些非法操作。

正常用戶轉賬
http://www.xxx.com/pay.php?user=xx&money=100
惡意用戶轉賬
http://www.xxx.com/pay.php?user=惡意用戶&money=1000

CSRF漏洞利用
在修改密碼的時候,抓包抓到修改密碼的請求

http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=123&password_conf=123&Change=Change

利用隱藏圖片設計一個簡易的修改密碼的異常鏈接

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>中獎了</h1>
    <!--  定義爲一個圖片格式,包含有修改密碼的請求  -->
    <img src="http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=admin&password_conf=admin&Change=Change"
         alt="">
</body>
</html>

在這裏插入圖片描述
這也是form表單添加token信息的作用,用於驗證異常鏈接的安全性

GET型CSRF代碼分析

http://127.0.0.1/csrf/csrf_get.php?username=admin&password=admin

CSRF防禦措施
CSRF漏洞實質:服務器無法準確判斷當前請求是否是合法用戶的自定義操作。

  • 驗證碼防禦,依賴驗證碼,可以防護異常鏈接;
  • referer check防禦

Referer的檢查,正常Referer: https://www.baidu.com/index.php?tn=monline_3_dg
異常 Referer案例如下:
在這裏插入圖片描述

4、文件上傳

靶場環境
GitHub地址: https://github.com/c0ny1/upload-labs

解壓包放在如下目錄下:
在這裏插入圖片描述
在該upload文件夾下需要創建一個名爲upload的文件夾,用於上傳文件的存儲位置

完成之後訪問:127.0.0.1/upload/
在這裏插入圖片描述

文件上傳-繞過JS驗證

1.JS驗證代碼分析,在page-1中的index.php

第一種方法:
瀏覽器剔除響應JS
瀏覽器審計工具剔除JS:利用瀏覽器的審查工具剔除JS之後,保存爲新文件然後進行文件上傳
在這裏插入圖片描述
第二種繞過JS驗證提交方法:
修改該網頁的源碼,將提交文件的響應提交至http://127.0.0.1/upload/Pass-01/index.php頁面
即圖中的修改代碼:action=‘http://127.0.0.1/upload/Pass-01/index.php’; 保存退出
然後用瀏覽器 打開該源碼文件進行提交。
在這裏插入圖片描述

文件上傳-繞過MIME-Type驗證

MIME-Type介紹
MIME(Multipurpose Internet Mail Extensions)多用途互聯網郵件擴展類型。是設定某種擴展名的文件 用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程 序來打開。多用於指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。

驗證MIME-Type代碼分析
Pass-2中index.php

burpsuite繞過MIME-Type驗證 :利用Burpsuite工具截斷HTTP請求,在Repeater重放修改MIME-Type類型繞過驗證。image/jpeg或者image/png
在這裏插入圖片描述

文件上傳-繞過黑名單驗證

基於文件後綴名驗證介紹

對於文件上傳模塊來說,儘量避免上傳可執行的腳本文件。爲了防止上傳腳本需要設置對應的驗證 方式。最簡單的就是設置文件後綴名驗證。

基於文件後綴名驗證方式的分類
1.基於白名單驗證:只針對白名單中有的後綴名,文件才能上傳成功。
2.基於黑名單驗證:只針對黑名單中沒有的後綴名,文件才能上傳成功

基於黑名單驗證代碼分析
對於黑名單中的後綴名篩選。繞過黑名單可以通過尋找“漏網之魚” ,尋找某些可以被作爲腳本執行 同時也不在黑名單中。

Pass-3中index.php

Burpsuite繞過黑名單驗證
利用Burpsuite工具截斷HTTP請求,利用Intruder模塊進行枚舉後綴名,尋找黑名單中沒有過濾的後 綴名。
在這裏插入圖片描述

繞過黑名單驗證(大小寫驗證)

大小寫繞過原理

  • Windows系統下,對於文件名中的大小寫不敏感。例如:test.php和TeSt.PHP是一樣的。
  • Linux系統下,對於文件名中的大小寫敏感。例如:test.php和 TesT.php就是不一樣的。

基於黑名單驗證的代碼分析
只存在於Windows當中,不存在於Linux系統:因爲Windows系統中大小寫不敏感

在Pass-5中的index.php
查看網頁源碼
在這裏插入圖片描述
修改上傳文件的後綴大小寫然後進行上傳,可以通過大小寫繞過黑名單。

WeBaCoo上傳Webshell

  • 1.WeBaCoo生成Webshell: webacoo -g -o a.php
  • 2.上傳Webshell
  • 3.連接Webshell:webacoo -t -u Webshell地址

利用webacoo創建一個木馬文件
在這裏插入圖片描述

繞過黑名單驗證(空格驗證)

空格繞過原理
Windows系統下,對於文件名中空格會被作爲空處理,程序中的檢測代碼卻不能自動刪除空格。從而繞過黑名單。
針對這樣的情況需要使用Burpsuite截斷HTTP請求之後,修改對應的文件名添加空格。

Burpsuite 繞過黑名單驗證
利用Burpsuite工具截斷HTTP請求,對上傳文件名後加空格。

在這裏插入圖片描述

繞過黑名單驗證(.號繞過)

.號繞過原理
Windows系統下,文件後綴名最後一個點會被自動去除

Burpsuite 繞過黑名單驗證
利用Burpsuite工具截斷HTTP請求,上傳文件加 . 繞過上傳。

生成並上傳Webshe
使用weevely生成Webshell並上傳

  • 1.生成:weevely generate 密碼 路徑 文件名
  • 2.上傳至網頁
  • 3.連接:weevely shell文件地址 密碼

繞過黑名單驗證(路徑拼接繞過)

路徑拼接繞過原理
在沒有對上傳的文件進行重命名的情況下,用戶可以自定義文件名並在服務器中上傳新建,就會造 成對應的繞過黑名單。

例如: 用戶新建 1.php.空格

修改文件名 繞過黑名單驗證
在kali Linux下修改文件名,上傳1.php. .空格
在這裏插入圖片描述

繞過黑名單驗證(雙寫繞過)

雙寫繞過原理
代碼編寫過程中,只對黑名單中的內容進行空替換,因爲只替換一次所以造成雙寫繞過。

例如: 1.phphpp

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章