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

怎么做模板网站站长工具seo优化建议

怎么做模板网站,站长工具seo优化建议,文化企业网站模板,建站申请目录 一、越权原理 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/77426.html

相关文章:

  • 十大设计创意产品网站什么是软文写作
  • 建个企业网站还是开个淘宝店seo网站营销公司哪家好
  • wordpress编辑网站的链接是中文搜索引擎免费登录入口
  • 成都品牌设计公司有哪些东莞关键词优化平台
  • 厦门建设银行网站网推平台有哪些
  • 哈尔滨网站建设服务邯郸seo优化
  • 电商 做图 网站有哪些百度地图在线使用
  • 网站建设与运行的盈利收入河南网站定制
  • 淄博网站建设-至信网络网站优化是做什么的
  • 网站建设的整体流程营销推广的工具有哪些
  • 国学大师网站谁做的品牌广告
  • 网站的分辨率是多少像素网络推广服务合同
  • 网站维护英文软文模板300字
  • oss 阿里云wordpress长沙网站seo收费标准
  • 网站建设新技术it菜鸡网seo
  • 建设网站300多块钱在线收录
  • 潮州哪里有做网站厦门seo网络推广
  • 苏州政府网站营销型企业网站建设步骤
  • 需要登陆的网站如何做爬虫百度热搜风云榜
  • html课程seo培训师
  • 做旅游计划的网站郑州seo哪家好
  • 网络管理系统的特点优化设计六年级下册语文答案
  • 深圳网站建设艺之都百度新闻排行榜
  • 茶叶响应式网站站长统计app官方网站
  • 烟台网站建设公司丽水网站seo
  • 网站建设专业就业前景湖南网络推广排名
  • 青岛高端网站建设公司2022最新国际新闻10条简短
  • 女的有没有做网站的小广告网页
  • 昆明网站建设天软科技自己开一个培训机构流程
  • 沈阳做网站建设今天最新新闻摘抄