WEB安全漏洞之CSRF 附案例

來源:http://bbs.ichunqiu.com/thread-9236-1-1.html?from=ch

社區(qū):i春秋

時間:2016年8月4日10:30:00

作者:LoneliNess前言

小編寫本文章,只是希望能跟大牛交流交流,讓更多人了解它....如有錯誤,請你雅正!

目錄

·第一節(jié) 初識CSRF

·第二節(jié) 檢測CSRF漏洞

·第三節(jié) 實戰(zhàn)案例及修復方案

·第四節(jié) 嚴正聲明

正文

第一節(jié) 初識CSRF

1.1、什么是CSRF

CSRF(Cross-site request forgery跨站請求偽造,也被稱為"One Click Attack"或者Session Riding,通??s寫為CSRF或者XSRF,是一種對網站的惡意利用。盡管聽起來像跨站腳本(XSS),但它與XSS非常不同,并且攻擊方式幾乎相左。XSS利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進行防范的資源也相當稀少)和難以防范,所以被認為比更具危險性

通俗的講:攻擊者盜用了你的身份,以你的名義進行一些非法操作,CSRF可以讓你的賬號發(fā)送郵件等操作,從而獲取你的相關信息

1.2、CSRF攻擊原理

一個圖解釋了一切

例子:當你登錄了i春秋的網站,正在進行轉賬泉幣的業(yè)務,這時,攻擊者像你發(fā)了一個url,然而,這個url是攻擊者精心構造的轉賬業(yè)務代碼,而且是同一個網站,你可能認為是安全的,然后點擊了它,but,你的泉幣可能不翼而飛??(PS:咱i春秋木有轉賬功能)

第二節(jié)檢測CSRF漏洞

檢測它的方法有多種,筆者經常用的是全自動的檢測方法和半自動的,當然也有手工的

1.1、全自動化檢測

CSRF-Scanner,這塊工具,缺點真心大,就是誤報率太高了,幾條中半天挑不出一條,so,小編就不詳細的介紹它了

1.2、半自動化檢測

CSRFTester

下載地址:https://www.owasp.org/index.php/File:CSRFTester-1.0.zip

1.安裝CSRFTester

對,沒錯,下載下來,打開run.bat就可以打開它了(PS:需要java的環(huán)境)

看到這個,你也許會納悶啥意思,他表示CSRFTester已經在監(jiān)聽8008端口了,你要使用它,必須要將瀏覽器的端口設置為8008

2.設置瀏覽器代理(360瀏覽器為例)

3. 用戶登錄

單擊“Start Recording”,開啟CSRFTester的檢測工作,這樣以后我們所有訪問的URL以及參數都會被記錄下來。

4. 通過CSRFTester抓取和偽造請求

當你登錄一個網站賬號時,CSRF Tester會進行抓取

我們抓取了該請求,在Step屬性中添加請求,然后將Form Parameter中的eatName改成CSRFTest,然后單擊Generate HTML按鈕來產生CSRF攻擊腳本。

5.分析CSRF攻擊腳本

[AppleScript]純文本查看復制代碼

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

OWASP CRSFTester Demonstration

var pauses=newArray("406","215","344","390");

function pausecomp(millis)

{

vardate=newDate();

var curDate=null;

do{curDate=newDate();}

while(curDate-date

}

function fireForms()

{

var count=4;

var i=0;

for(i=0; i

{

document.forms.submit();

pausecomp(pauses);

}

}

OWASP CRSFTester Demonstration

https://user.********com:443/login/signin">

https://user.********.com:443/login/verify_image?d=1470218273;">

https://user.**********.com:443/login/selectUserEnt">

https://user.************.com:443/login/signin">

從這段代碼中,闊以看出,這款工具把所有屬性生成了隱藏的input標簽,然后添加了默認值,當訪問這個頁面時,JavaScript會自動提交這個表單………………

當然,你也可以使用burp中的scanner進行檢測………

在任意http請求中,右鍵,選擇Engagement tools –Generate CSRF POC 即可生成CSRFPOC

第三節(jié) 實戰(zhàn)案例及修復方案

目標:***.***.edu.com

注冊賬戶,發(fā)現(xiàn)修改用戶名處無驗證,直接改密碼

Burp抓包,生成CSRF POC

我們可以修改代碼中的數據

當前用戶密碼151515

我們將他修改成123456

提交………..

之后可以看到……修改成功……

修復方案:

1.? ? 二次確認(如彈窗提示)

2.? ? Token認證

第四節(jié) 嚴正聲明

本文討論的技術僅用于研究學習技術交流,嚴禁用于非法行為和破壞行為,否則造成的一切法律責任與作者以及本網站無關。

本文原創(chuàng)作者:LoneliNess,轉載須注明來自i春秋社區(qū)(BBS.ichunqiu.com)

結束語

相信大家一定收獲頗豐,請多多支持i春秋,不忘初心,方得始終!??!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容