• API recon(学习记录)

    技术交流
    0 赞同
    11 帖子
    68 浏览

    防止 API 中的漏洞

    在设计 API 时,请确保从一开始就考虑安全性。特别是,请确保您:

    如果您不希望公开访问 API,请保护您的文档。 确保您的文档保持最新状态,以便合法测试人员能够全面了解 API 的攻击 表面。 应用允许的 HTTP 方法的允许列表。 验证每个请求或响应的内容类型是否为预期。 使用通用错误消息来避免泄露可能对攻击者有用的信息。 对 API 的所有版本(而不仅仅是当前生产版本)使用保护措施。

    若要防止批量分配漏洞,请将用户可更新的属性列入允许列表,并将用户不应更新的敏感属性列入黑名单。

    服务器端参数污染

    某些系统包含无法从 Internet 直接访问的内部 API。当网站在没有充分编码的情况下将用户输入嵌入到对内部 API 的服务器端请求中时,就会发生服务器端参数污染。这意味着攻击者可能能够操纵或注入参数,从而使他们能够,例如:

    覆盖现有参数。 修改应用程序行为。 访问未经授权的数据。

    您可以测试任何用户输入的任何类型的参数污染。例如,查询参数、表单字段、标头和 URL 路径参数都可能容易受到攻击。
    d1f61ad4-88a9-478e-86b4-6793c731c1db-image.png

    注意 此漏洞有时称为 HTTP 参数污染。但是,此术语也用于指 Web 应用程序防火墙 (WAF) 绕过技术。为避免混淆,在本主题中,我们将仅提及服务器端参数污染。 此外,尽管名称相似,但此漏洞类与服务器端几乎没有共同之处 原型污染。

    测试查询字符串中的服务器端参数污染

    若要测试查询字符串中的服务器端参数污染,请在输入中放置查询语法字符(如 #、& 和= ),并观察应用程序的响应方式。

    考虑一个易受攻击的应用程序,它使您能够根据其他用户的用户名搜索其他用户。当您搜索用户时,您的浏览器会发出以下请求:

    GET /userSearch?name=peter&back=/home

    为了检索用户信息,服务器使用以下请求查询内部 API:

    GET /users/search?name=peter&publicProfile=true

    截断查询字符串

    您可以使用 URL 编码的字符来尝试截断服务器端请求。为了帮助您解释响应,您还可以在字符后添加一个字符串。##

    例如,可以将查询字符串修改为以下内容:

    GET /userSearch?name=peter%23foo&back=/home

    前端将尝试访问以下 URL:

    GET /users/search?name=peter#foo&publicProfile=true 注意 对字符进行 URL 编码至关重要。否则,前端应用程序会将其解释为片段标识符,并且不会将其传递给内部 API。#

    查看响应,以获取有关查询是否已被截断的线索。例如,如果响应返回 user ,则服务器端查询可能已被截断。如果返回错误消息,则应用程序可能已被视为用户名的一部分。这表明服务器端请求可能尚未被截断。peterInvalid namefoo

    如果能够截断服务器端请求,则无需将字段设置为 true。您可以利用此漏洞返回非公开用户配置文件。publicProfile

    注入无效参数

    您可以使用 URL 编码字符尝试向服务器端请求添加第二个参数。&

    例如,可以将查询字符串修改为以下内容:

    GET /userSearch?name=peter%26foo=xyz&back=/home

    这会导致对内部 API 发出以下服务器端请求:

    GET /users/search?name=peter&foo=xyz&publicProfile=true

    查看响应,以获取有关如何分析其他参数的线索。例如,如果响应未更改,这可能表示该参数已成功注入,但被应用程序忽略。

    为了建立更完整的画面,您需要进一步测试。

    注入有效参数

    如果能够修改查询字符串,则可以尝试向服务器端请求添加第二个有效参数。

    相关页面
    有关如何识别可注入查询字符串的参数的信息,请参阅查找隐藏 parameters 部分。

    例如,如果已标识该参数,则可以将其添加到查询字符串中,如下所示:email

    GET /userSearch?name=peter%26email=foo&back=/home

    这会导致对内部 API 发出以下服务器端请求:

    GET /users/search?name=peter&email=foo&publicProfile=true

    查看响应,以获取有关如何分析其他参数的线索。

    覆盖现有参数

    若要确认应用程序是否容易受到服务器端参数污染的影响,可以尝试覆盖原始参数。为此,请注入具有相同名称的第二个参数。

    例如,可以将查询字符串修改为以下内容:

    GET /userSearch?name=peter%26name=carlos&back=/home

    这会导致对内部 API 发出以下服务器端请求:

    GET /users/search?name=peter&name=carlos&publicProfile=true

    内部 API 解释两个参数。其影响取决于应用程序如何处理第二个参数。这在不同的 Web 技术中有所不同。例如:name

    PHP 只解析最后一个参数。这将导致用户搜索 .carlos
    ASP.NET 结合了这两个参数。这将导致用户搜索 ,这可能会导致错误消息。peter,carlosInvalid username
    Node.js / express 仅解析第一个参数。这将导致用户搜索 ,给出不变的结果。peter
    如果您能够覆盖原始参数,则可以进行攻击。例如,您可以添加到请求中。这可能使您能够以管理员用户身份登录。name=administrator

  • 服务器端的漏洞(相关学习)

    技术交流
    0 赞同
    24 帖子
    187 浏览

    实验室:允许绕过登录的 SQL 注入漏洞

    本实验在登录函数中包含一个 SQL 注入漏洞。

    若要解决实验室问题,请执行以用户身份登录应用程序的 SQL 注入攻击。administrator

    使用 Burp Suite 拦截和修改登录请求。 修改参数,为其赋值:usernameadministrator'--

    实验步骤

    目的为以管理员用户登录应用程序
    尝试账号密码为admin。网页显示,Invalid username or password,无效的用户名或密码,故此不知道是用户名还是密码错误。
    2e65ae8e-7059-42f6-9f12-b5fa9b9c680a-image.png
    从实验室说明中查的用户名为administrator
    feb01956-f6b6-4d04-9e09-ed3e83a29a7e-image.png
    在Username中输入any' or 1=1 -- ,密码随便写毕竟会被注释掉
    用any'来闭合参数,or一个为真即可通过,-- 是 sql 的注释语法注释掉后面的密码
    在Username中输入administrator'-- ,密码随便写毕竟会被注释掉
    8173bfd7-1178-4dda-a998-c0865b692ef3-9e674102a5164c4c54a2b2ff9f5b8c1.png
    浏览器连上代理,在登录页面用 bp 抓包,修改其参数
    fa6e5393-4d7e-4839-b647-338761108e41-d619dae3e684645c57a1a468a1b5503.png

  • Spring 集成Milvus报错

    技术交流
    0 赞同
    2 帖子
    106 浏览

    解决办法,排除冲突的依赖

    <dependency> <groupId>io.milvus</groupId> <artifactId>milvus-sdk-java</artifactId> <version>2.4.1</version> <exclusions> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> </exclusion> </exclusions> </dependency>
  • 全职or兼职的远程工作

    招聘
    0 赞同
    2 帖子
    590 浏览

    你还在为找不到工作而苦恼吗?来,看这里,这里有成千上万的工作,只要你有能力,里面的工作都是你的,你可以兼职,也可以全职,时间自由,只要你想工作了,就进来。。。
    你还为每天上下班时间太长而整体没有精神吗?来,看这里,这里是远程办公,你可以不用挤公交,挤地铁,不用怕塞车;你可以睡到自然醒,元气满满的开始你一天的工作。。。
    你还在为下班的时候老板叫你加班或开会而不爽吗?来,看这里,这里只需要你在规定时间内完成任务即可。。。
    是不是很爽,这里就是云队友远程工作平台,是一个提供远程工作求职,远程用人管理的平台。目前,平台有数十万优质人才提供远程工作服务,也有大量远程全职/兼职的职位。平台包涵技术、运营、设计、产品、HR、翻译等多类目职位,满足企业的远程用人需求和人才的远程工作需求。
    加入我们吧!
    https://www.duiyou360.com/?utm_source=user11
    3d40f5f6-a4d7-4713-ad00-53d1ab59fdae-image.png

  • 文鼎字体iCloudfont下载

    综合交流
    1 赞同
    9 帖子
    5k 浏览

    感谢分享

  • GitHub官网汉化插件

    已移动 Github & Git
    3 赞同
    76 帖子
    51k 浏览

    @drw2005 已修复

  • 重编译,发布,打包出错,求助

    Github & Git
    0 赞同
    1 帖子
    298 浏览
    尚无回复
  • 空桶投球

    综合交流
    0 赞同
    1 帖子
    423 浏览
    尚无回复
  • 0 赞同
    1 帖子
    462 浏览
    尚无回复
  • 0 赞同
    1 帖子
    1k 浏览
    尚无回复
  • 求代码

    综合交流
    0 赞同
    1 帖子
    966 浏览
    尚无回复
  • 0 赞同
    2 帖子
    1k 浏览

    发邮件不需要当事人的密码呀。只需要自己写个代码,然后把代码部署完 在配下API就行

  • 0 赞同
    2 帖子
    2k 浏览

    其实这样的网站依旧可以访问,很多时候只是该网站没有采用一些安全协议而已,本身并无“黑”的目的。不过,害人之心不可有,防人之心不可无,如果您必须访问这样的网站,建议采取额外的安全措施,比如确保您的操作系统和防病毒软件是最新的,避免在该网站上输入敏感信息,不点击不明链接或下载未知文件。同时,也可以考虑使用VPN等工具来增加一层网络安全保护。

  • 0 赞同
    2 帖子
    1k 浏览

    解决办法。wsl 挂载windows的目录有问题,直接在wsl里面建一个目录,然后挂载

    docker run -d -p 18123:8123 -p19000:9000 --name clickhouse-server -v ~/volumes/clickhouse/data:/var/lib/clickhouse/ --ulimit nofile=262144:262144 clickhouse/clickhouse-server 5c3e31d25eefd758715b2e54b7b42e048cc9991d52efa4ea1506269fc55bbf19

    参考
    https://github.com/ClickHouse/ClickHouse/issues/55638

  • 【https】如何让http升级成https

    综合交流
    0 赞同
    2 帖子
    2k 浏览

    个人感觉域名托管到cloudflare也不错,直接成HTTPS

  • 0 赞同
    1 帖子
    1k 浏览
    尚无回复
  • 一篇文章就教你快速理解SSL协议

    综合交流
    0 赞同
    1 帖子
    859 浏览
    尚无回复
  • 1 赞同
    1 帖子
    1k 浏览
    尚无回复
  • 【HTTPS】https证书详细解释

    技术交流
    0 赞同
    1 帖子
    729 浏览
    尚无回复
  • 0 赞同
    2 帖子
    1k 浏览

    POST请求的嘛,你搞错GET了