白帽子黑客攻防系列課程(六)CSRF

課程前言

白帽子黑客攻防系列課程第二季現已上線。

本課程僅做學習交流之用,切勿用於任何不法用途!
白帽子黑客攻防系列課程將會深入淺出講解計算機網絡基礎、滲透靶場搭建、Kali Linux、系統漏洞、滲透工具(Nmap、Sqlmap、AWVS等)等的原理及實戰內容。
第二季主要講解DVWA黑客攻防演練等,配合講解網絡基礎知識及Linux基礎知識等。
知其然並知其所以然,相信通過學習,各位朋友對白帽子黑客攻防會有非常深刻理解。
夢想還是要有的,萬一實現了呢!

網易雲課堂地址:https://study.163.com/course/courseMain.htm?courseId=1209505841&share=2&shareId=480000001946405

本篇博文爲CSRF要點筆記,主要介紹黑客攻防中的CSRF技術。

CSRF概述

CSRF(Cross-site request forgery跨站請求僞造,也被稱爲“oneclick attack”或者session riding),通常縮寫爲CSRF或者XSRF,是一種對網站的惡意利用。儘管聽起來像跨站腳本(XSS),但它與XSS非常不同,並且攻擊方式幾乎相左。XSS利用站點內的信任用戶,而CSRF則通過僞裝來自受信任用戶的請求來利用受信任的網站。

WebA是存在CSRF漏洞的網站,WebB是攻擊者構建的惡意網站.UserC是WebA網站的合法用戶。 首先用戶C打開瀏覽器,訪問受信任網站A,輸入用戶名和密碼請求登錄網站A; 其次在用戶信息通過驗證後,網站A產生Cookie信息並返回給瀏覽器,此時用戶登錄網站A成功,可以正常發送請求到網站A, 再然後用戶未退出網站A之前,在同一瀏覽器中,打開一個TAB頁訪問網站B; 網站B接收到用戶請求後,返回一些攻擊性代碼,併發出一個請求要求訪問第三方站點A;瀏覽器在接收到這些攻擊性代碼後;根據網站B的請求,在用戶不知情的情況下攜帶Cookie信息,向網站A發出請求。網站A並不知道該請求其實是由B發起的,所以會根據用戶C的Cookie信息以C的權限處理該請求,導致來自網站B的惡意代碼被執行。

初級原理及實操

修改密碼後看地址欄

http://192.168.199.217/dvwa/vulnerabilities/csrf/?password_new=a&password_conf=a&Change=Change# http://192.168.199.217/dvwa/vulnerabilities/csrf/?password_new=ab&password_conf=ab&Change=Change#

中級原理及實操

view source

stripos() 函數

查找 "php" 在字符串中第一次出現的位置(不區分大小寫)

<?php echo stripos("You love php, I love php too!","PHP"); ?>

stripos( $_SERVER[ 'HTTP_REFERER' ] ,$_SERVER[ 'SERVER_NAME' ]) !== false )

查看$_SERVER[ 'HTTP_REFERER' ] 、$_SERVER[ 'SERVER_NAME' ]

思路:僞造HTTP_REFERER

如今網絡上十分流行論壇自動發帖機,自動頂貼機等,給衆多論壇網站帶來了大量的垃圾信息,許多網站只是簡單地採用了判斷HTTP_REFERER的值來進行過濾機器發帖,可是網頁的HTTP_REFERER來路信息是可以被僞造的。任何事物都是雙面刃,只要你善於利用就有其存在價值。 虛擬機xp2(192.168.199.226)下:192.168.199.217.php

高級原理及實操

view source

加入了Anti-CSRF token機制,用戶每次訪問改密頁面時,服務器會返回一個隨機的token,向服務器發起請求時,需要提交token參數,而服務器在收到請求時,會優先檢查token,只有token正確,纔會處理客戶端的請求。

涉及跨域問題,而現在的瀏覽器是不允許跨域請求的。兩者的域名不同,域名B下的所有頁面都不允許主動獲取域名A下的頁面內容,除非域名A下的頁面主動發送信息給域名B的頁面,所以我們的攻擊腳本是不可能取到改密界面中的user_token。

由於跨域是不能實現的,所以我們要將攻擊代碼注入到目標服務器中,纔有可能完成攻擊。所以單純從CSRF未能突破High級別。

神仙級原理

view source

利用PDO技術防禦SQL注入,至於防護CSRF,則要求用戶輸入原始密碼(簡單粗暴),攻擊者在不知道原始密碼的情況下,無論如何都無法進行CSRF攻擊。

總結

請求中放入攻擊者不能僞造的信息。

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