CSRF漏洞

0X00:前言

CSRF:(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,一般缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS很是不一样,XSS利用站点内的信任用户,而CSRF则经过假装成受信任用户的请求来利用受信任的网站。html

 

CSRF是借用用户的权限完成攻击,攻击者没有拿到受害者权限web

 

受害者必须在登陆状态下,而且点击了链接json

若是受害者不在登录状态,或者没有点击,则攻击不成功浏览器

0X01:确认CSRF漏洞

(1)通常出如今对重要信息的修改(修改密码等),服务器

 

(2)post

 测试环境DVWA,pikachu测试

0X02:CSRF  get

通常是攻击者本身在网站建立帐号,修改要修改的信息,抓包,获得url网站

 

 

 

referer是什么东西呢???google

Referer  是  HTTP  请求header 的一部分,当浏览器(或者模拟浏览器行为)向web 服务器发送请求的时候,头信息里有包含  Referer  。好比我在www.google.com 里有一个www.baidu.com 连接,那么点击这个www.baidu.com ,它的header 信息里就有:url

    Referer=http://www.google.com

由此能够看出来吧。它就是表示一个来源。

(2)http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=admin741&password_conf=admin741&Change=Change#

攻击者 只要把这个URL,内容修改一下,发给受害者,受害者点击后,就会把密码修改了,

 

 0X03:CSRF post

post须要借助本身的站点,与XSS  post相似

 

抓包post参数后,放到本身服务器站点的URL中,让受害者点击本身搭建的URL,本身的服务器,在向正常的服务器提交带有csrf payload的post请求,实现攻击

 

 

0X04:利用Token防护CSRF

if($_GET['sex']!=null && $_GET['phonenum']!=null && $_GET['add']!=null && $_GET['email']!=null && $_GET['token']==$_SESSION['token'])

 

在每次提交的时候,都会生成一个必定长度而且随机的数跟在URL中,每次点击修改的时候会话中也会有Token,两个比较

 

0Xff:总结

CSRF漏洞,攻击成功条件比较多,因此不少人也不是很重视。看起来与XSS比较类似,可是存在本质差异,CSRF不须要得到用户权限,还有其余防护措施:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。

相关文章
相关标签/搜索