日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CSRF简单介绍及利用方法-跨站请求伪造

發(fā)布時(shí)間:2025/3/8 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CSRF简单介绍及利用方法-跨站请求伪造 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

0x00 簡(jiǎn)要介紹


CSRF(Cross-site request forgery)跨站請(qǐng)求偽造,由于目標(biāo)站無token/referer限制,導(dǎo)致攻擊者可以用戶的身份完成操作達(dá)到各種目的。根據(jù)HTTP請(qǐng)求方式,CSRF利用方式可分為兩種。

0x01 GET類型的CSRF


這種類型的CSRF一般是由于程序員安全意識(shí)不強(qiáng)造成的。GET類型的CSRF利用非常簡(jiǎn)單,只需要一個(gè)HTTP請(qǐng)求,所以,一般會(huì)這樣利用:

<img src=http://wooyun.org/csrf.php?xx=11 />

如下圖,在訪問含有這個(gè)img的頁面后,成功向http://wooyun.org/csrf.php?xx=11發(fā)出了一次HTTP請(qǐng)求。所以,如果將該網(wǎng)址替換為存在GET型CSRF的地址,就能完成攻擊了。

烏云相關(guān)案例:

http://wooyun.org/bugs/wooyun-2010-023783

http://wooyun.org/bugs/wooyun-2010-027258 (還未公開)

0x02 POST類型的CSRF


這種類型的CSRF危害沒有GET型的大,利用起來通常使用的是一個(gè)自動(dòng)提交的表單,如:

<form action=http://wooyun.org/csrf.php method=POST> <input type="text" name="xx" value="11" /> </form> <script> document.forms[0].submit(); </script>

訪問該頁面后,表單會(huì)自動(dòng)提交,相當(dāng)于模擬用戶完成了一次POST操作。

烏云相關(guān)案例:

http://wooyun.org/bugs/wooyun-2010-026622

http://wooyun.org/bugs/wooyun-2010-022895

0x03 其他猥瑣流CSRF


過基礎(chǔ)認(rèn)證的CSRF(常用于路由器):

POC:

<img src=http://admin:admin@192.168.1.1 /* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */ />

加載該圖片后,路由器會(huì)給用戶一個(gè)合法的SESSION,就可以進(jìn)行下一步操作了。

烏云相關(guān)案例:

WooYun: TP-LINK路由器CSRF,可干許多事(影響使用默認(rèn)密碼或簡(jiǎn)單密碼用戶)

0x04 如何修復(fù)


針對(duì)CSRF的防范,有以下幾點(diǎn)要注意:

關(guān)鍵操作只接受POST請(qǐng)求

驗(yàn)證碼

CSRF攻擊的過程,往往是在用戶不知情的情況下構(gòu)造網(wǎng)絡(luò)請(qǐng)求。所以如果使用驗(yàn)證碼,那么每次操作都需要用戶進(jìn)行互動(dòng),從而簡(jiǎn)單有效的防御了CSRF攻擊。

但是如果你在一個(gè)網(wǎng)站作出任何舉動(dòng)都要輸入驗(yàn)證碼會(huì)嚴(yán)重影響用戶體驗(yàn),所以驗(yàn)證碼一般只出現(xiàn)在特殊操作里面,或者在注冊(cè)時(shí)候使用

檢測(cè)refer

常見的互聯(lián)網(wǎng)頁面與頁面之間是存在聯(lián)系的,比如你在www.baidu.com應(yīng)該是找不到通往www.google.com的鏈接的,再比如你在論壇留言,那么不管你留言后重定向到哪里去了,之前的那個(gè)網(wǎng)址一定會(huì)包含留言的輸入框,這個(gè)之前的網(wǎng)址就會(huì)保留在新頁面頭文件的Referer中

通過檢查Referer的值,我們就可以判斷這個(gè)請(qǐng)求是合法的還是非法的,但是問題出在服務(wù)器不是任何時(shí)候都能接受到Referer的值,所以Refere Check 一般用于監(jiān)控CSRF攻擊的發(fā)生,而不用來抵御攻擊。

Token

目前主流的做法是使用Token抵御CSRF攻擊。下面通過分析CSRF 攻擊來理解為什么Token能夠有效

CSRF攻擊要成功的條件在于攻擊者能夠預(yù)測(cè)所有的參數(shù)從而構(gòu)造出合法的請(qǐng)求。所以根據(jù)不可預(yù)測(cè)性原則,我們可以對(duì)參數(shù)進(jìn)行加密從而防止CSRF攻擊。

另一個(gè)更通用的做法是保持原有參數(shù)不變,另外添加一個(gè)參數(shù)Token,其值是隨機(jī)的。這樣攻擊者因?yàn)椴恢繲oken而無法構(gòu)造出合法的請(qǐng)求進(jìn)行攻擊。

Token 使用原則

Token要足夠隨機(jī)————只有這樣才算不可預(yù)測(cè) Token是一次性的,即每次請(qǐng)求成功后要更新Token————這樣可以增加攻擊難度,增加預(yù)測(cè)難度 Token要注意保密性————敏感操作使用post,防止Token出現(xiàn)在URL中

0x05 測(cè)試CSRF中注意的問題


如果同域下存在xss的話,除了驗(yàn)證碼,其他的方式都無法防御這個(gè)問題。

有個(gè)程序后端可能是用REQUEST方式接受的,而程序默認(rèn)是POST請(qǐng)求,其實(shí)改成GET方式請(qǐng)求也可以發(fā)送過去,存在很嚴(yán)重的隱患。

當(dāng)只采用refer防御時(shí),可以把請(qǐng)求中的修改成如下試試能否繞過:

原始refer:http://test.com/index.php

測(cè)試幾種方式(以下方式可以通過的話即可能存在問題):

http://test.com.attack.com/index.php http://attack.com/test.com/index.php [空]

refer為空構(gòu)造的方法:

由于瀏覽器特性,跨協(xié)議請(qǐng)求時(shí)不帶refer(Geckos內(nèi)核除外),比如https跳到http,如果https環(huán)境不好搭建的話,ftp其實(shí)也是可以的:)<iframe src="data:text/html,<script src=http://www.baidu.com></script>"> //IE不支持利用 xxx.src='javascript:"HTML代碼的方式"'; 可以去掉refer,IE8要帶。 <iframe id="aa" src=""></iframe> <script> document.getElementById("aa").src='javascript:"<html><body>wooyun.org<scr'+'ipt>eval(你想使用的代碼)</scr'+'ipt></body></html>"'; </script>



http://www.ibm.com/developerworks/cn/web/1102_niugang_csrf/


總結(jié)

以上是生活随笔為你收集整理的CSRF简单介绍及利用方法-跨站请求伪造的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。