白帽子黑客攻防系列课程(六)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攻击。

总结

请求中放入攻击者不能伪造的信息。

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