## CSRF 漏洞簡介
CSRF(Cross-Site Request Forgery,跨站點偽造請求)是一種網絡攻擊方式,該攻擊可以在受害者毫不知情的情況下以受害者名義偽造請求發送給受攻擊站點,從而在未授權的 情況下執行在權限保護之下的操作,具有很大的危害性。
### CSRF攻擊原理及實例
當我們打開登陸某個網站后,就會產生一個會話,這個會話可能是SESSION、Cookie,但無關緊要的。唯一的重點是瀏覽器與服務器之間是在會話之中
1. 在這個會話沒有結束時候,你可以利用你的權限對網站進行操作,如進行發表文章,發郵件,刪除文章等操作。
2. 當這個會話結束后,你在進行某些操作時候 Web 應用程序通常會來提醒你,您的會話已過期,或者是請重新登陸等提示。
3. 而 CSRF 攻擊則是建立會話之上的攻擊。
比如當你登陸了網上銀行,正在進行轉賬業務,這時你的某個 QQ 好友(攻擊者)發來一條消息(URL),這條消息是攻擊者精心構造的轉賬業務代碼。而且與你所登錄的網站是同一個銀行,你可能認為這個網站是安全的,并不是什么釣魚網站之類的,然后打開了這條URL,那么你的賬戶的錢可能就在你的這一次小小點擊上全部丟失。
4. 攻擊成功主要是因為你的瀏覽器正處于與此網站的會話之中,那么一切正常操作都是合法的,而入侵者構造的這段代碼只不過是正常的轉賬操作代碼而已
* 案例
比如說你想給用戶 spisec 轉賬 1000元,那么點擊提交按鈕之后,可能會發送以下請求:
http://www.taobao.com/pay.jsp?user=spisec&money=1000
而攻擊者僅僅是改變一下 user 參數與 money 參數即可完成一次“合法”的攻擊,如:
http://www.taobao.com/pay.jsp?user=hack&money=10000
當你訪問了這條URL之后,就會自動向 hack 這個賬戶里面轉入10000元。而這是你親手造成的,并沒有人破解你的密碼或入侵Web服務器
### 流程總覽
1. 用戶 C 打開瀏覽器,訪問受信任網站 A,輸入用戶名和密碼請求登錄網站 A;
2. 在用戶信息通過驗證后,網站 A 產生 Cookie 信息并返回給瀏覽器
此時用戶登錄網站 A 成功,可以正常發送請求到網站 A;
3. 用戶未退出網站 A 之前,在同一瀏覽器中,打開一個 TAB 頁訪問網站 B;
可能是點擊的郵件、qq會話中的鏈接地址
4. 網站 B 接收到用戶請求后,返回一些攻擊性代碼
攻擊代碼中要求用戶瀏覽器去訪問站點 A;
5. 瀏覽器在接收到這些網站B的返回數據后,根據網站 B 的請求,訪問站點A
瀏覽器在用戶不知情的情況下攜帶Cookie信息,向網站 A 發出請求。
網站 A 并不知道該請求其實是由 B 發起的,所以會根據用戶C的Cookie信息和權限處理該請求
導致來自網站 B 的惡意代碼被執行。
總結 CSRF 兩個側重點
1. CSRF 的攻擊建立在瀏覽器與 Web 服務器的會話之中。
或者是有用戶信息,用戶登錄不用密碼)
2. 欺騙用戶訪問 URL
也就是說攻擊者盜用了用戶的身份,用用戶合法手段進行自己的操作
## CSRF 攻擊分類和檢測
CSRF 漏洞一般分為站外和站內兩種類型
### CSRF 站外類型
本質上就是傳統意義上的外部提交數據問題。
通常程序員會考慮給一些留言或者評論的表單加上水印以防止 SPAM 問題,
但是有時為了提高用戶的體驗性,可能沒有對一些操作做任何限制,所以攻擊者可以事先預測并設置請求的參數,在站外的 Web頁面里編寫腳本偽造文件請求,或者和自動提交的表單一起使用來實現 GET、POST 請求
當用戶在會話狀態下點擊鏈接訪問站外 Web 頁面,客戶端就被強迫發起請求。
>SPAM 可以簡單的理解為垃圾留言、垃圾評論,或者是帶有站外鏈接的惡意回復
### CSRF 站內類型
在一定程度上是由于程序員濫用$_REQUEST 類變量造成的。
在一些敏感的操作中,本來要求用戶從表單提交發起 POST 請求傳遞參數給程序,
但是由于使用了$_REQUEST 等變量,程序也支持接收 GET 請求傳遞的參數,這就為攻擊者使用CSRF創造條件。
一般攻擊者只要把預測的請求參數放在站內一個貼子或者留言的圖片鏈接里,受害者瀏覽了這樣的頁面就會被強迫發起這些請求。
### CSRF漏洞檢測:
檢測CSRF漏洞是一項比較繁瑣的工作,以下是一個最簡單的流程:
1. 抓取一個正常請求的數據包,
2. 觀察數據包里是否存在用戶信息或者token相關的字段
如果有那么刪除一下看看數據包是否正常,看看響應包是否正常,如果不正常則嘗試放棄(繞過幾率極小)
3. 然后刪除origin字段重新提交
看看響應包是否正常,如果不正常則嘗試放棄(繞過幾率極小)
4. 最后去掉Referer字段后再重新提交
看看響應包是否正常,如果不正常那也可以嘗試繞過
5. 如果以上都正常,則生成POC,另一個瀏覽器登錄驗證。
### CSRF漏洞容易出現的地方:
1. 修改密碼的地方
2. 添加用戶的地方
3. 數據庫備份的地方數據交易、支付等
4. 等其它一些對話框釣魚頁面
5. CSRF一般與XSS結合使用
- src導航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查詢
- 備案信息查詢
- 信用信息查詢
- IP反查站點的站
- 瀏覽器插件
- 收集子域名信息
- 在線平臺
- 工具枚舉
- ssl與證書透明度
- DNS歷史解析
- DNS域傳送漏洞
- C段探測
- JS文件域名&ip探測
- 搜索引擎&情報社區
- google黑客
- 威脅情報
- 鐘馗之眼
- 收集相關應用信息
- 微信公眾號&微博
- APP收集&反編譯
- 收集常用端口信息
- 常見端口&解析&總結
- 掃描工具
- 網絡空間引擎搜索
- 瀏覽器插件
- nmap掃描
- 收集敏感信息
- 源碼泄露
- 郵箱信息收集
- 備份文件泄露
- 目錄&后臺掃描
- 公網網盤
- 歷史資產
- 指紋&WAF&CDN識別
- 指紋識別
- CDN識別
- 繞過CDN查找真實IP
- WAF識別
- 漏洞資源和社工
- 漏洞公共資源庫
- 社會工程
- 資產梳理
- 各種對滲透有幫助的平臺
- 掃描器
- 掃描器對比
- AppScan(IBM)_web和系統
- AWVS_web掃描
- X-Scan_系統掃描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_綠盟_web
- 安恒明鑒
- Nessus_系統
- nexpose_系統
- 啟明天鏡_web_系統
- SQL注入
- 常用函數
- sql注入步驟
- union注入和information_schema庫
- 函數和報錯注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解決方案
- Access數據庫注入
- MSSQL數據庫注入
- MYSQL數據庫注入
- 神器SQLmap
- xss跨站腳本攻擊
- xss原理和分類
- xss案例和修復
- xss繞過技巧
- xss案例
- 文件上傳下載包含
- 常有用文件路徑
- 文件上傳漏洞
- 文件下載漏洞
- 文件包含漏洞
- upload-labs上傳漏洞練習
- XXE、SSRF、CSRF
- SSRF原理基礎
- SSRF案例實戰
- CSRF原理基礎
- CSRF案例及防范
- XXE之XML_DTD基礎
- XXE之payload與修復
- XXE結合SSRF
- 遠程命令執行與反序列化
- 遠程命令和代碼執行漏洞
- 反序列化漏洞
- 驗證碼與暴力破解
- 爆破與驗證碼原理
- CS架構暴力破解
- BS架構暴力破解
- WEB編輯器漏洞
- 編輯器漏洞基礎
- Ewebeditor編輯器
- FCKeditor編輯器
- 其他編輯器
- web中間件漏洞
- 中間件解析漏洞
- Tomcat常見的漏洞總結
- Jboss漏洞利用總結
- Weblogic漏洞利用總結
- WEB具體步驟
- 旁注和越權
- CDN繞過
- 越權與邏輯漏洞
- WEB應用常見其他漏洞
- WEB登陸頁面滲透思路
- 獲取WEBshell思路
- 社工、釣魚、apt
- 社工和信息收集
- 域名欺騙
- 釣魚郵件
- 一些釣魚用的掛馬工具
- 代碼審計
- 代碼審計工具
- WAF繞過
- WAF基礎及云WAF
- 各種WAF繞過方法
- 繞過WAF上傳文件
- 系統提權
- windows系統提權
- linux系統提權
- 數據庫提權操作系統
- 內網橫向滲透
- 內網穿透方式
- 一些內網第三方應用提權
- ARP與DOS
- ARP欺騙
- DOS與DDOS
- 一些DOS工具