项目笔记:Webgoat靶场通关教程之Broken Access Control

0x01.Broken Access Control(失效的访问控制)

       1.会话劫持

         接着上篇文章继续讲,打开网页显示试图预测“hijack_cookie”值

一看就是要进行cookie爆破,随便填点击登录然后查看cookie

记下来,之后删除cookie,重复个两三次观察规律

规律推导:前缀43999087440979xxxx为固定模式,后缀17631xxxxxxxx为时间戳或递增计数器。

暴力破解有效Cookie 打开抓包软件,随便填一些数字登录抓包

  • 工具选择:使用Burp Suite的Intruder模块WebScarab进行枚举攻击。
  • 因为难度较低且有规律可循,所以自己制定简单列表可以否则设置攻击载荷太长了
    2.不安全的直接对象引用

      直接对象引用是指应用程序使用客户端提供的输入来访问数据和对象,当引用未得到正确处理并允许绕过授权或披露可用于 执行用户不应执行或访问的作或访问数据。 假设作为用户,您查看您的个人资料,URL 如下所示:

https://some.company.tld/app/user/23398

https://some.company.tld/app/user/23398

https://some.company.tld/app/user/23398您可以在那里查看您的个人资料。如果您导航到以下位置,会发生什么情况:

https://some.company.tld/app/user/23399 

https://some.company.tld/app/user/23399或在末尾使用另一个数字。如果可以作号码(用户 ID)并查看其他人的个人资料,则对象引用是不安全的。 当然,这可以检查或扩展到 GET 方法之外来查看数据,也可以作数据。

打开会让你输入账号密码进行身份验证输入他给的 “tom”,"cat"。

到后面意思就是让你抓包查看个人资料里没有的字段然后输入下面框框里我们先打开抓包,然后点击查看个人资料,之后放到Repeater发送看看

会发现圈起来的那俩字段没有,在下面提交就行,记得只提交标签,中间用英文逗号隔开(我一直提交不成功,吐了)

        后面会让你用另一种方式查看自己的个人资料,就是构造url查看,前面抓包已经知道账号路径和uid,直接构造url试试

后面又让查看其它人资料,但是我们不知道他们uid啊,那咋办——只能爆破呗

抓包发到intuber ,根据我们自己的uid设置位数最好

爆破成功

3.缺少功能级别访问控制

        访问控制(例如使用输出编码防止 XSS)可能很难维护。必须确保它在整个应用程序中得到充分执行,从而在每个方法/函数中得到充分执行。

  • 定义:功能级别访问控制是指应用程序对每个功能模块(如页面、API端点)实施细粒度的权限验证,确保只有授权用户能执行特定操作。若缺失,攻击者可绕过权限限制,访问未授权功能(如管理员面板、数据修改接口)。
  • 风险类型
    • 水平越权:同权限用户访问他人数据(如普通用户查看/修改其他用户信息)。
    • 垂直越权:低权限用户执行高权限操作(如普通用户访问管理员功能)。
    • 路径遍历:通过修改请求参数访问隐藏目录或敏感文件(如../../../../etc/passwd)。

打开发现让查找一些隐藏项目

通过他的提示按f12找找看吧,发现在输入框上面字段中好像有一个控件UI没显示出来

前俩控件书信都是dropdown,最后一个前面加了个hidden-menu-item ,抱着试一试的心态把他删了然后再看看页面变化,发现多了个admin里面有userss属性和config属性,填上去就行。(记得留意这三个控件链接)

再往后

他让收集用户信息,还记得前面那三个属性的路径吗

access-control/users

access-control/users-admin-fix

access-control/config

随便访问一个,发现报错了

        发现报错了,这里看看源码加了什么条件吧(黑盒只能看手法了~)

这里要求请求的Content-Type头必须为application/json,那我们添加content-type: application/json

发现返回了多个用户哈希值,随便复制一个粘上去就好了

再往后,他说这个这个漏洞已经修复,只有管理员能看到,让我们再试一次。

看源码

细心的朋友看到下面有个adduser方法,应该是添加新用户,尝试用此提权(记得改成post提交)

现在我们有管理员权限了,在访问试试,搞了半天还是不行,真的要吐了

看了知乎大佬的文章才知道:

现在的问题是,虽然我们成功越权创建了一个jack001的管理员用户,但是并没法登录啊。

继续看源码,发现users-admin-fix这个接口虽然会校验当前用户是否是管理员,它校验的方法是从后端的登录态中取到当前用户的用户名,然后判断它是不是管理员,如果是就返回数据。

参考:A1-Spoofing an Authentication Cookie - 知乎 (zhihu.com)

退出当前登录账户然后注册一个跟上面提交提权账户一样的账户

之后在这里面提权再访问

成功找到哈希值(会发现这次哈希值不一样)

        伪造身份验证Cookie是指攻击者通过非法手段生成或篡改有效的Cookie值,从而冒充合法用户身份访问受保护资源。Cookie作为Web应用中用户身份的“临时通行证”,通常包含会话ID、角色权限等敏感信息。若其生成逻辑存在缺陷或未受保护,攻击者可利用漏洞伪造有效Cookie,绕过登录验证。

        进去他给了俩账户

登陆一下试试,发现有base64加密,解码出一段字符,另一个也是如此。

我们对其结果进行尝试其他解码,发现是base64-16进制-文本,这样发现前面字符都一样,后面为账户名字倒写

那么我记得前面有个叫tom的账户,我们进行伪造试试

成功伪造 NDM3YTRlNzU0MTZhNjI2MTc1NzM2ZDZmNzQ=

然后随便登录抓包伪造cookie(spoof_auth=NDM3YTRlNzU0MTZhNjI2MTc1NzM2ZDZmNzQ=),成功~

未完待续...

Read more

AI时代人人都是产品经理:落地流程:AI 核心功能,从需求到上线的全流程管控方法

AI时代人人都是产品经理:落地流程:AI 核心功能,从需求到上线的全流程管控方法

AI的普及正在重构产品经理的工作模式——不再依赖传统的跨部门协作瓶颈,AI可以成为产品经理的"全职助手",覆盖需求分析、原型设计、开发协同、测试验证全流程。本文将拆解AI时代产品核心功能从0到1落地的完整管控方法,让你用AI能力提升300%的落地效率。 一、需求阶段:AI辅助的需求挖掘与标准化 需求是产品的起点,AI可以帮你从海量信息中精准定位用户真实需求,避免"伪需求"浪费资源。 1. 需求挖掘:AI辅助用户洞察 传统需求调研依赖问卷、访谈,效率低且样本有限。AI可以通过以下方式快速完成用户洞察: * 结构化处理非结构化数据:用AI分析用户在社交媒体、客服对话、应用评论中的碎片化反馈,自动提炼高频需求点 * 需求优先级排序:基于KANO模型,AI可以自动将需求划分为基础型、期望型、兴奋型、无差异型四类,输出优先级列表 实战工具与示例: 使用GPT-4+Python脚本批量处理应用商店评论: import openai import pandas as

人工智能:深度学习模型的优化策略与实战调参

人工智能:深度学习模型的优化策略与实战调参

人工智能:深度学习模型的优化策略与实战调参 💡 学习目标:掌握深度学习模型的核心优化方法,理解调参的底层逻辑,能够独立完成模型从欠拟合到高性能的调优过程。 💡 学习重点:正则化技术的应用、优化器的选择与参数调整、批量大小与学习率的匹配策略。 48.1 模型优化的核心目标与常见问题 在深度学习项目中,我们训练的模型往往会出现欠拟合或过拟合两种问题。优化的核心目标就是让模型在训练集和测试集上都能达到理想的性能,实现泛化能力的最大化。 ⚠️ 注意:模型优化不是一次性操作,而是一个“诊断-调整-验证”的循环过程,需要结合数据特性和任务需求逐步迭代。 48.1.1 欠拟合的识别与特征 欠拟合是指模型无法捕捉数据中的潜在规律,表现为训练集和测试集的准确率都偏低。 出现欠拟合的常见原因有以下3点: 1. 模型结构过于简单,无法拟合复杂的数据分布。 2. 训练数据量不足,或者数据特征维度太低。 3. 训练轮次不够,模型还未充分学习到数据的特征。 48.1.2 过拟合的识别与特征 过拟合是指模型在训练集上表现极好,但在测试集上性能大幅下降。 出现过拟合的常见原因有以下3点:

Python AI入门:从Hello World到图像分类

Python AI入门:从Hello World到图像分类 一、Python AI的Hello World 1.1 环境搭建 首先,我们需要搭建Python AI的开发环境: # 安装PyTorch pip install torch torchvision # 安装其他依赖 pip install numpy matplotlib 1.2 第一个AI程序 让我们来编写一个最简单的AI程序 - 线性回归: import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt # 生成训练数据 x = torch.linspace(

谈谈你对 AI Code Assistant(如 GitHub Copilot)的看法,它如何改变开发者的工作流?

AI Code Assistant深度剖析:从GitHub Copilot看开发者工作流的革命性变革 摘要/引言 开门见山:当AI成为你的编程搭档 想象一个场景:你正专注于解决一个复杂的业务逻辑问题,手指悬停在键盘上,准备编写一个数据处理函数。突然,IDE中弹出几行灰色的代码建议——正是你脑海中即将实现的逻辑,甚至连你没考虑到的边界条件处理都已包含在内。你轻轻按下Tab键,代码瞬间补全,仿佛有一位无形的搭档在你耳边低语:“这样实现如何?”。这不是科幻电影中的场景,而是 millions of 开发者正在经历的日常——AI Code Assistant(人工智能代码助手)已从概念走向现实,深刻重塑着软件开发的 landscape。 作为一名拥有10年+开发经验的工程师,我亲历了从"查手册编程"到"Stack Overflow复制粘贴"再到"AI协同编码"的三次范式转变。2021年GitHub