pikachu靶场CSRF-post测试报告

目录

一、测试环境

1、系统环境

2、使用工具/软件

二、测试目的

三、操作过程

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/csrfpost/csrf_post_login.php

二、测试目的

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

三、操作过程

1、抓包使用burp生成csrf脚本

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

如下就是提交修改的请求包,是post方式,参数在请求主体中

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

生成csrf的利用代码

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

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

请求方法是post

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

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

点击提交,成功修改信息

四、源代码分析

<?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_post_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_post_login.php");
}$html1='';
if(isset($_POST['submit'])){if($_POST['sex']!=null && $_POST['phonenum']!=null && $_POST['add']!=null && $_POST['email']!=null){$getdata=escape($link, $_POST);$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_post.php");}else {$html1.='修改失败,请重试';}}
}?>
……
<div class="page-content"><?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="post"><h1 class="per_title">hello,{$name},欢迎来到个人会员中心 | <a style="color:bule;" href="csrf_post.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;?>

只是将获取变量方式改为了post方式。页面对身份进行了验证,但没有校验身份的真实性,可能会被伪造身份。造成csrf攻击。

五、结论

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

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

使用post方式提交,更安全一些,不会将参数暴露在url中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/57389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

老机MicroServer Gen8再玩 OCP万兆光口+IT直通

手上有一台放了很久的GEN8微型服务器&#xff0c;放了很多年&#xff0c;具体什么时候买的我居然已经记不清了 只记得开始装修的时候搬家出去就没用了&#xff0c;结果搬出去有了第1个孩子&#xff0c;孩子小的时候也没时间折腾&#xff0c;等孩子大一点的时候&#xff0c;又有…

【去哪儿-注册安全分析报告-缺少轨迹的滑动条】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

RabbitMQ service is already present - only updating service parameters

Windows下卸载RabbitMQ之后,然后重新注册RabbitMQ服务的时候,报错以下信息: D:\software\rabbitmq-server-4.0.2\rabbitmq_server-4.0.2\sbin>D:\software\rabbitmq-server-4.0.2\rabbitmq_server-4.0.2\sbin\rabbitmq-service.bat install RabbitMQ service is already …

kafka自定义配置信息踩坑

org.apache.kafka.common.config.ConfigException: Invalid value 0 for configuration acks: Expected value to be a string, but it was a java.lang.Integer 场景描述&#xff1a; 单个kafka使用springboot框架自带的 yml 配置完全OK&#xff08;因为底层会帮我们处理好类…

调查显示软件供应链攻击增加

OpenText 发布了《2024 年全球勒索软件调查》&#xff0c;强调了网络攻击的重要趋势&#xff0c;特别是在软件供应链中&#xff0c;以及生成式人工智能在网络钓鱼诈骗中的使用日益增多。 尽管各国政府努力加强网络安全措施&#xff0c;但调查显示&#xff0c;仍有相当一部分企…

CentOS7安装RabbitMQ-3.13.7、修改端口号

本文安装版本&#xff1a; Erlang&#xff1a;26.0 官网下载地址 Erlang RabbitMQ&#xff1a;3.13.7 官网下载地址 RabbitMQ RabbitMQ和Erlang对应关系查看&#xff1a;https://www.rabbitmq.com/which-erlang.html 注&#xff1a;安装erlang之前先安装下依赖文件&#xff0…

【Qt】控件——Qt多元素控件、常见的多元素控件、多元素控件的使用、List Widget、Table Widget、Tree Widget

文章目录 QtQt多元素控件List WidgetTable WidgetTree Widget Qt Qt多元素控件 List Widget 使用 QListWidget 能够显示一个纵向的列表。 属性说明currentRow当前被选中的是第几行。count一共有多少行。sortingEnabled是否允许排序。isWrapping是否允许换行。itemAlignment元素…

Tomcat日志文件详解及catalina.out日志清理方法

目录 前言1. Tomcat日志文件详解1.1 catalina.out1.2 localhost_access_log1.3 catalina.<date>.log1.4 host-manager.<date>.log 和 manager.<date>.log1.5 localhost.<date>.log 2. catalina.out文件管理与清理方法2.1 为什么不能直接删除catalina.o…

【火山引擎】AIGC图像风格化 | 风格实践 | PYTHON

目录 1 准备工作 2 实践 代码 效果图 1 准备工作 ① 服务开通 确保已开通需要访问的服务。您可前往火山引擎控制台,在左侧菜单中选择或在顶部搜索栏中搜索需要使用的服务,进入服务控制台内完成开通流程。

开发工具(上)

前面我们在Linux部分了解文件权限&#xff0c;和基本指令的内容&#xff0c;但对于开发工具还是没有很多的接触&#xff0c;现在这一篇就是主要讲基础的工具&#xff1b;如yum&#xff0c;yum源&#xff0c;包管理器等等&#xff1b; Linux中的安装软件&#xff1a; 源码安装 …

JAVA——IO流(2)

目录 1.缓冲流 a.字节缓冲流 1.构造方法 2.常见方法 3.底层原理 b.字符缓冲流 1.构造方法 2.特有方法 2.转换流 a.概述 b.编码问题 c.InputStreamReader类 1.概述 2.构造方法 d.OutputStreamWrite类 1.概述 2.构造方法 3.序列化流 a.概述 b.ObjectOutputStr…

TCP的建立与终止——三次握手、四次挥手

目录 1. UDP和TCP的区别 2. TCP概述 3. TCP连接的建立&#xff08;三次握手&#xff09; 3.1 为什么TCP客户端最后还要发送一次确认&#xff1f; 3.2 什么是半连接队列&#xff1f; 3.3 半连接队列被填满或遇到SYN洪泛攻击是如何处理&#xff1f; 3.4 三次握手过程中可以…

力扣 简单 746.使用最小花费爬楼梯

文章目录 题目介绍题解 题目介绍 题解 思路分析&#xff1a; 确定dp数组以及下标的含义&#xff1a;dp[i]的定义为到达第i台阶所花费的最少体力。确定递推公式&#xff1a;可以有两个途径得到dp[i]&#xff0c;一个是dp[i-1] 一个是dp[i-2]。dp[i - 1] 跳到 dp[i] 需要花费 d…

Linux修改npm的镜像源为淘宝镜像

起因&#xff1a;使用官方镜像源下载软件包速度太慢 1.查看npm当前镜像源命令 npm get registry 执行结果 2.还原为官方镜像源命令 npm config set registry https://registry.npmjs.org/ 3.修改为淘宝镜像命令 npm config set registry https://registry.npmmirror.com …

神经网络激活函数定义速查

一、概述 老猿记心不太好&#xff0c;虽然最近写了两篇博文介绍激活函数&#xff1a;神经网络激活函数列表大全及keras中的激活函数定义&#xff1a;https://blog.csdn.net/LaoYuanPython/article/details/142731106》、《神经网络高级激活函数大全及keras中的函数定义 https:…

安装jianmu

一说明 1建木可以代替jkenis进行自动化部署**二安装 2.1登录官网&#xff0c;查看命令** 官网地址&#xff1a;https://docs.jianmu.dev/guide/how-to-deploy.html#%E9%83%A8%E7%BD%B2%E6%96%B9%E5%BC%8F%E4%B8%80%EF%BC%9Adocker-compose%E9%83%A8%E7%BD%B2 2.2拉取yml文件…

OpenStack将运行的系统导出 QCOW2 镜像并导入阿里云

项目背景 OpenStack&#xff0c;作为一个开源的云计算平台&#xff0c;经常被用于构建私有云和公有云服务。然而&#xff0c;随着业务的发展和扩展&#xff0c;企业可能会面临将在OpenStack上运行的虚拟机迁移到其他云服务供应商的需求 需求 因为运营团队在本地机房有一台 O…

技术成神之路:设计模式(二十二)命令模式

介绍 命令模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c;允许将请求&#xff08;命令&#xff09;封装为对象&#xff0c;从而使您可以使用不同的请求、队列或记录请求日志&#xff0c;以及支持可撤销操作。 1. 定义 命令模式将一个请求封装为一个…

【人工智能】探索自然语言处理中的语音识别技术:基于Recurrent Neural Networks (RNN) 和长短期记忆网络(LSTM)模型的深入剖析

语音识别作为自然语言处理中的一项核心任务&#xff0c;近年来取得了长足的进展&#xff0c;尤其是在深度学习技术的推动下。在语音识别任务中&#xff0c;Recurrent Neural Networks (RNN) 尤其是其变体——长短期记忆网络&#xff08;LSTM&#xff09;&#xff0c;展现出了卓…

python之电影天堂爬取下载链接

电影天堂_电影下载_高清首发 示例仅供参考&#xff0c;如有违权请联系删除&#xff01; 比如我们想要获取“2024必看影片” 鼠标右键&#xff0c;查看源文件 找到这里 匹配正则表达式 obj1 re.compile(r"2024必看热片.*?<ul>(?P<ul>.*?)</ul>&q…