当前位置: 首页 > wzjs >正文

怎么做模板网站网络营销费用预算

怎么做模板网站,网络营销费用预算,督查营商环境建设网站,web手机版网站开发框架目录 一、越权原理 1. 水平越权 2. 垂直越权 二、第25关 越权查看admin 1.打开靶场 2.源码分析 (1)为何存在越权? (2)如何利用越权? 3.源码修改 4.aaaaa账号登录 5.水平越权切换到mooyuan 6.垂…

目录

一、越权原理

1. 水平越权

2. 垂直越权

二、第25关 越权查看admin

1.打开靶场

2.源码分析

(1)为何存在越权?

(2)如何利用越权?

3.源码修改

4.aaaaa账号登录

5.水平越权切换到mooyuan

6.垂直越权切换admin


本文通过《webug4靶场第25关 越权查看admin》来进行越权攻击渗透实战。

一、越权原理

本关卡虽然题目是越权查看admin也就是垂直越权,实际上也存在水平越权。

1. 水平越权

  • 定义:指相同权限级别的用户之间,非法访问或操作其他用户的资源。即攻击者尝试访问与自己具有相同权限级别的其他用户的信息或执行相关操作,而这些操作超出了其应有的访问范围。
  • 原理:Web 应用程序在处理用户请求时,通常依据用户的身份标识(如用户 ID)来识别和授权访问相应的资源。当应用程序对用户输入的参数(如 URL 中的用户 ID、表单中的数据等)没有进行充分的验证和过滤时,攻击者就可以通过修改这些参数,将目标用户的身份标识替换为自己的,从而访问到其他用户的资源。
  • 示例:在一个在线银行系统中,用户 A 和用户 B 都是普通客户,具有相同的权限。用户 A 通过修改 URL 中的用户 ID 参数,将其从自己的 ID 改为用户 B 的 ID,从而成功访问到了用户 B 的账户信息,如余额、交易记录等。

2. 垂直越权

  • 定义:指低权限用户非法访问或操作高权限用户的资源或执行高权限操作。即攻击者突破自身权限限制,访问到本应只有更高权限角色才能访问的功能或数据。
  • 原理:应用程序在进行权限验证时,可能存在不严格或不完整的情况。例如,仅验证用户是否登录,而没有对用户的具体角色和权限进行细致的检查。或者在权限判断过程中,存在逻辑处理不当,使得低权限用户能够绕过正常的权限控制,直接访问高权限的资源或执行高权限的操作。
  • 示例:在一个企业管理系统中,普通员工账户通常只能查看自己的考勤记录和个人信息。但通过分析应用程序的访问逻辑,攻击者发现可以直接在 URL 中输入特定的参数,绕过权限验证,访问到管理员页面,进而对系统中的所有员工信息进行修改、删除等操作。

二、第25关 越权查看admin

1.打开靶场

 点进去第25关越权关卡,进入到如下界面。

http://192.168.71.1/webug4/control/auth_cross/cross_find.php

2.源码分析

cross_find.php源码如下所示。

<?phprequire_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}if (isset($_POST['username']) && isset($_POST['password'])) {if (!empty($_POST['username']) && !empty($_POST['password'])) {$username = $_POST['username'];$password = $_POST['password'];$sql = "SELECT id, username, password FROM user_test WHERE username = '{$username}' AND password = '{$password}'";$res = $dbConnect->query($sql);while ($row = mysqli_fetch_assoc($res)) {$id = $row['id'];header("Location:/pt_env/control/auth_cross/cross_find2.php?id={$id}");}}
}
require_once TPMELATE."/cross_auth_passwd.html";

cross_find.php中在登录成功后跳转到的cross_find2.php源码这个代码的含义为基于id查询用户信息,显示当前是哪个用户。 并没有判断当前用户是否为该id,存在越权攻击的可能性,如下所示。

require_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}
// 检查是否存在id参数
if (isset($_GET['id'])) {// 检查id参数是否非空if (!empty($_GET['id'])) {// 直接获取用户输入的id参数(未做任何过滤处理)$id = $_GET['id'];// 构造SQL查询语句(直接将用户输入拼接到SQL中,极其危险)$sql = "SELECT id, username, password FROM user_test WHERE id = {$id}";// 执行SQL查询$res = $dbConnect->query($sql);// 遍历查询结果while ($row = mysqli_fetch_assoc($res)) {// 输出用户名(存在XSS风险)$user = $row['username'];echo "I am :{$user}";}}
}

接下来对 cross_find.php源代码进行详细注释并分析,如下所示。 


// 检查是否通过 POST 方法提交了 'username' 和 'password' 字段
if (isset($_POST['username']) && isset($_POST['password'])) {// 检查 'username' 和 'password' 字段是否不为空if (!empty($_POST['username']) && !empty($_POST['password'])) {// 获取 POST 方法提交的 'username' 字段的值$username = $_POST['username'];// 获取 POST 方法提交的 'password' 字段的值$password = $_POST['password'];// 构造 SQL 查询语句,用于从 'user_test' 表中查询匹配的用户名和密码的记录$sql = "SELECT id, username, password FROM user_test WHERE username = '{$username}' AND password = '{$password}'";// 执行 SQL 查询语句,并将结果存储在 $res 变量中$res = $dbConnect->query($sql);// 遍历查询结果集while ($row = mysqli_fetch_assoc($res)) {// 从结果集中获取用户的 id$id = $row['id'];// 将用户重定向到 cross_find2.php 页面,并将用户的 id 作为参数传递header("Location:cross_find2.php?id={$id}");}}
}

(1)为何存在越权?

  • 缺乏权限验证:代码仅验证了用户名和密码,在用户登录成功后,直接将用户重定向到 cross_find2.php 页面,并传递用户的 id 参数,没有对用户是否具有访问该页面或执行特定操作的权限进行检查。不同用户角色通常具有不同的权限级别,例如普通用户和管理员用户,而代码没有区分这些角色,只要用户登录成功,就可以访问该页面,这就为垂直越权攻击提供了可能。
  • 依赖用户 ID 传递:页面的访问依赖于 id 参数,攻击者可以通过修改这个参数的值来尝试访问其他用户的资源或执行高权限操作。由于代码没有对 id 参数进行严格的权限验证,攻击者可以轻易绕过正常的权限控制。

(2)如何利用越权?

  • 假设场景:由于代码存在越权漏_洞,攻击者可以通过以下方式利用:
    • 修改 URL 参数:攻击者在登录自己的账号后,获取到自己的id 参数,然后手动修改 URL 中的 id 参数为管理员用户的 id或者其他用户id,再次访问 cross_find2.php 页面。由于代码没有对 id参数进行权限验证,攻击者就可以以管理员的身份访问该页面,执行只有管理员才能执行的操作,如删除用户、修改系统配置等。

3.源码修改

  使用用户名admin和密码admin登录。

登陆后报错如下,很明显是网址访问错误。

很明显URL链接地址出现错误,应该如下所示。

http://192.168.71.1/control/auth_cross/cross_find2.php?id=1

于是需要将源码修改为如下内容。

<?phprequire_once "../../common/common.php";
if (!isset($_SESSION['user'])) {header("Location:../login.php");
}if (isset($_POST['username']) && isset($_POST['password'])) {if (!empty($_POST['username']) && !empty($_POST['password'])) {$username = $_POST['username'];$password = $_POST['password'];$sql = "SELECT id, username, password FROM user_test WHERE username = '{$username}' AND password = '{$password}'";$res = $dbConnect->query($sql);while ($row = mysqli_fetch_assoc($res)) {$id = $row['id'];header("Location:cross_find2.php?id={$id}");}}
}
require_once TPMELATE."/cross_auth_passwd.html";

这个代码bug在docker版本的靶场中也存在,需要同样修改。

再次使用用户名admin和密码admin登录,如下所示。

4.aaaaa账号登录

进入正确的页面后,输入aaaaa用户名和密码点击GO登录。

http://192.168.71.1/webug4/control/auth_cross/cross_find2.php?id=2

如下所示登录成功提示我是aaaa。

5.水平越权切换到mooyuan

在aaaaa用户登录的前提下,直接将id修改为3,如下所示水平越权成功。

http://127.0.0.1//webug4/control/auth_cross/cross_find2.php?id=3

6.垂直越权切换admin

在mooyuan用户登录的前提下,直接将id修改为1,如下所示垂直越权成功。

http://192.168.71.1/webug4/control/auth_cross/cross_find2.php?id=1

http://www.dtcms.com/wzjs/387067.html

相关文章:

  • 网站代理加盟赚钱吗网络推广公司如何做
  • 信息网站建设的意义windows优化大师有什么功能
  • 南京网站建设哪家好今天最新新闻报道
  • 苏州做网站哪家专业搜索引擎营销流程是什么?
  • 西安企业网站建站百度快照优化
  • 东营做网站建设的公司国际时事新闻最新消息
  • 化妆品网站内容规划seo网站推广经理
  • 复制别人网站做第一站软件外包平台
  • 小型企业网站建设的背景免费做网站推广的软件
  • 网站开发毕业设计任务书百度网盘资源搜索引擎
  • 做网站的调研报告网络营销和传统营销的区别和联系
  • 做微课常用的网站平台seo
  • 电子商务网站建设员软文广告是什么意思
  • 网络公司排名最新排名网站优化公司哪家效果好
  • 石家庄便宜做网站友情链接举例
  • 政府网站建设内容保障机制销售推广
  • 哪里培训做网站如何建立网站服务器
  • 品牌排名网站网站页面怎么优化
  • 龙岩市住房与城乡建设局网站品牌推广的方式有哪些
  • 三星官方网站和业务多一样的平台
  • 网站建设微信托管整合营销传播策略
  • 网站建设:成都今网科技网站优化公司哪个好
  • 怎么自己做APP网站官网排名优化方案
  • wordpress 选择插件重庆做优化的网络公司
  • 网站后台的功能口碑营销的前提及好处有哪些
  • wordpress无缝截图上海企业网站seo
  • 幼儿网站源代码小说网站排名前十
  • 在阿里云备案网站通过网站没有友情链接
  • 泾川建设路网站怎么在网上做广告宣传
  • 深圳网站建设开发哪家好无经验能做sem专员