pikachu靶场CSRF-get测试报告

news/2024/10/22 22:22:57/

目录

一、测试环境

1、系统环境

2、使用工具/软件

二、测试目的

三、操作过程

csrf%E8%84%9A%E6%9C%AC-toc" style="margin-left:40px;">1、抓包使用burp生成csrf脚本

四、源代码分析

五、结论


一、测试环境

1、系统环境

渗透机:本机(127.0.0.1)

靶  机:本机(127.0.0.1)

2、使用工具/软件

Burp suite2024.7.2

测试网址:http://127.0.0.1/pikachu/pikachu/vul/csrf/csrfget/csrf_get_login.php

二、测试目的

实现get请求方式页面的csrf攻击,修改页面内容。

三、操作过程

csrf%E8%84%9A%E6%9C%AC">1、抓包使用burp生成csrf脚本

根据提示的用户,登录到会员中心,页面提交即可修改参数

如下就是提交修改的请求包,是get方式,参数直接在url中拼接

请求报文中,右键-->engagement tools-->generate CSRF Poc

生成csrf的利用代码

这个利用代码,使用表单提交了原本get请求中的参数,是html写的

可以手动修改提交的参数值,访问这个html页面即可提交到修改信息的页面

我将csrf利用poc保存在根目录下

访问这个页面,只需要点击提交,即可修改用户的信息

点击提交,成功修改信息

四、源代码分析

php"><?php
/*** Created by runner.han* There is nothing new under the sun*/$SELF_PAGE = substr($_SERVER['PHP_SELF'],strrpos($_SERVER['PHP_SELF'],'/')+1);if ($SELF_PAGE = "csrf_get_edit.php"){$ACTIVE = array('','','','','','','','','','','','','','','','','','','','','','','','','','active open','','active','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','','');}$PIKA_ROOT_DIR =  "../../../";
include_once $PIKA_ROOT_DIR . 'header.php';include_once $PIKA_ROOT_DIR."inc/config.inc.php";
include_once $PIKA_ROOT_DIR."inc/function.php";
include_once $PIKA_ROOT_DIR."inc/mysql.inc.php";
$link=connect();
// 判断是否登录,没有登录不能访问
if(!check_csrf_login($link)){
//    echo "<script>alert('登录后才能进入会员中心哦')</script>";header("location:csrf_get_login.php");
}$html1='';
if(isset($_GET['submit'])){if($_GET['sex']!=null && $_GET['phonenum']!=null && $_GET['add']!=null && $_GET['email']!=null){$getdata=escape($link, $_GET);$query="update member set sex='{$getdata['sex']}',phonenum='{$getdata['phonenum']}',address='{$getdata['add']}',email='{$getdata['email']}' where username='{$_SESSION['csrf']['username']}'";$result=execute($link, $query);if(mysqli_affected_rows($link)==1 || mysqli_affected_rows($link)==0){header("location:csrf_get.php");}else {$html1.='修改失败,请重试';}}
}?>
……
<?php//通过当前session-name到数据库查询,并显示其对应信息$username=$_SESSION['csrf']['username'];$query="select * from member where username='$username'";$result=execute($link, $query);$data=mysqli_fetch_array($result, MYSQL_ASSOC);$name=$data['username'];$sex=$data['sex'];$phonenum=$data['phonenum'];$add=$data['address'];$email=$data['email'];$html=<<<A
<div id="per_info"><form method="get"><h1 class="per_title">hello,{$name},欢迎来到个人会员中心 | <a style="color:bule;" href="csrf_get.php?logout=1">退出登录</a></h1><p class="per_name">姓名:{$name}</p><p class="per_sex">性别:<input type="text" name="sex" value="{$sex}"/></p><p class="per_phone">手机:<input class="phonenum" type="text" name="phonenum" value="{$phonenum}"/></p>    <p class="per_add">住址:<input class="add" type="text" name="add" value="{$add}"/></p> <p class="per_email">邮箱:<input class="email" type="text" name="email" value="{$email}"/></p> <input class="sub" type="submit" name="submit" value="submit"/></form>
</div>
A;echo $html;echo $html1;?>

页面对身份进行了验证,但没有校验身份的真实性,可能会被伪造身份。造成csrf攻击。

五、结论

csrf攻击的原理是服务器未设置身份校验,导致身份容易被冒用,造成越权修改信息、执行命令等操作。

对于身份校验,应启用对应策略,保证身份不会被冒用。


http://www.ppmy.cn/news/1541166.html

相关文章

Unity开发Hololens项目

Unity打包Hololens设备 目录Visual Studio2019 / Visual Studio2022 远端部署设置Visual Studio2019 / Visual Studio2022 USB部署设置Hololens设备如何查找自身IPHololens设备门户Unity工程内的打包设置 目录 记录下自己做MR相关&#xff1a;Unity和HoloLens设备的历程。 Vi…

请求的crossDomain和withCredentials字段

场景 axios请求头种不携带withCredentials字段会出现跨域错误。 分析 1. crossDomain: true crossDomain 是一个配置选项&#xff0c;用来表示即将发出的请求是否是一个跨域请求。 当 crossDomain 设置为 true 时&#xff0c;axios 会使用 XMLHttpRequest 的 withCredentials …

【v5.3.0】修复订单批量发货提示 isPicUpload is not defined

使用订单批量发货的时候&#xff0c;没有反应&#xff0c;控制台提示 ReferenceError: isPicUpload is not defined 修改文件src/pages/order/orderList/components/tableList.vue 把isPicUpload改成isFileUpload&#xff0c;然后重新打包admin后台上传即可

Oracle里面,with ... as 用法介绍

在Oracle数据库中&#xff0c;WITH AS 子句&#xff08;也称为公用表表达式&#xff0c;CTE, Common Table Expression&#xff09;是一种在查询中定义临时结果集的方法。这个临时结果集可以在后续的查询中被引用&#xff0c;就像是一个临时的表或视图一样。使用 WITH AS 子句可…

【C#】在 WinForms 中使用 MVVM(Model-View-ViewModel) 设计模式

结合当前的 DevExpress 项目&#xff0c;在 WinForms 中使用 MVVM&#xff08;Model-View-ViewModel&#xff09; 设计模式。这个例子将通过数据绑定、命令绑定来展示 MVVM 模式的运用。 1. 项目结构 假设我们要实现一个简单的应用程序&#xff0c;它有一个文本框和一个按钮&…

15分钟学Go 第7天:控制结构 - 条件语句

第7天&#xff1a;控制结构 - 条件语句 在Go语言中&#xff0c;控制结构是程序逻辑的重要组成部分。通过条件语句&#xff0c;我们可以根据不同的条件采取不同的行动。今天我们将详细探讨Go语言中的两种主要条件结构&#xff1a;if语句和switch语句。理解这些控制结构对于编写…

Vue 3中集成Element Plus组件库

文章目录 一、Element Plus简介二、安装Element Plus2.1 安装Element Plus2.2 引入Element Plus三、使用Element Plus组件3.1 创建组件3.2 组件引入四、总结随着前端开发的快速发展,组件库已经成为开发实践中不可或缺的部分。 Vue 3作为一个现代的 JavaScript框架,其灵活性…

双11直播激发消费潜力,抖音电商作者带货成交额同比增长超70%

“双11”大促如火如荼&#xff0c;来自各行各业的抖音电商作者精心选品&#xff0c;为广大消费者带来丰富的优价好物。抖音电商数据显示&#xff0c;10月18日至20日&#xff0c;平台上作者累计带货成交额同比去年提升超70%&#xff0c;超10万名作者带货成交额同比增长300%&…