TIER 1: Appointment

SQL

Structured Query Language 是一种用于管理关系型数据库的编程语言。它是一种标准化的语言,用于定义、操作和管理数据库中的数据。

经常提及的 SQL, DB, DBMS 分别是什么及他们之间的关系

  • DB (DataBase) 数据库,在硬盘上以文件的形式存在
  • DBMS (DataBase Management System) 数据库管理系统,是一种软件,比如 MySQL, Oracle, SQL Server 等
  • SQL (Structured Query Language) 结构化查询语言,是一门标准通用的语言

他们之间的关系:DBMS --(执行)-> SQL --(操作)-> DB

SQL 语言具有以下主要组成部分:

  • 数据定义语言(DDL):DDL 用于定义数据库结构和模式。DDL 语句允许用户定义数据库的结构和模式,例如创建新表、添加新列或修改表的结构。

  • 数据操作语言(DML):DML 用于处理数据库中的数据。DML 语句允许用户向表中插入新数据、修改现有数据和删除数据行。

  • 数据查询语言(DQL):DQL 用于查询数据库中的数据。DQL 语句允许从一个或多个表中检索数据,并可以使用条件、排序、分组和连接等来操作和筛选数据。

  • 事务处理语言(TPL):TPL 用于处理数据库操作的事务性,即一系列相关的数据库操作要么全部成功执行,要么全部回滚。其意义在于保证数据库中的数据一致性。

  • 数据控制语言(DCL):DCL 用于控制数据库对象的访问权限和安全性。

不同的数据库系统可能会有一些差异和特定的扩展,因此在使用 SQL 时,建议参考具体数据库的文档和规范。所有阅读文档是基本功,不要惧怕文档。它是帮助你解决问题的最好的工具

下面是资料推荐:

在靶机 Appointment 和 Sequel 中,我们探讨的都是 MySQL 相关内容,因此推荐阅读 MySQL 官方文档。

PII

Personally Identifiable Information 是个人可识别信息,指可以用于唯一标识、定位或联系特定个人的数据或信息。比如姓名、身份证号、手机号、邮箱、银行卡号等。这里只是简单提及,作为术语科普

在进行信息收集时,我们核心的目标就是收集到 PII,因为这些信息可以帮助我们进行进一步的渗透。

OWASP

Open Web Application Security Project 是一个致力于提升 Web 应用程序安全的全球性开放社区和组织。OWASP 的使命是帮助组织开发、获取和维护可信赖的应用程序,通过教育、研究和开发开源工具和资源来推动应用程序安全。OWASP的官方网站 https://www.owasp.org

OWASP Top 10 是 OWASP 组织发布的十大 Web 安全风险,建议阅读 https://owasp.org/www-project-top-ten/

Injection 在 2021 OWASP Top 10 中排名第三,本次靶机 Appointment 涉及到 SQL Injection 的内容,SQL Injection 是 Injection 的分支。

Apache HTTP Server

Apache HTTP Server,通常简称为 Apache,是一个开源的、跨平台的 Web 服务器软件。它是最流行的 Web 服务器之一,被广泛用于搭建和运行网站和 Web 应用。

  • 官方网站 https://httpd.apache.org

  • 常用配置文件

    • httpd.conf 主配置文件
    • httpd-vhosts.conf 虚拟主机配置文件
    • httpd-ssl.conf SSL 配置文件
  • 端口开放

    • HTTP 默认端口 tcp/80
    • HTTPS 默认端口 tcp/443

Web 应用是一种在 Web 浏览器或其他客户端设备上运行的应用程序。浏览器通过 url 访问 Web 应用,Web 应用一般通过 HTTP 协议与浏览器进行通信。其实现在主流 HTTPS 协议,但是 HTTPS 协议是基于 HTTP 协议的,因此我们可以认为 Web 应用是基于 HTTP 协议的。区别主要是是否加密,HTTPS 额外套了一层 SSL/TLS 加密。

在本次靶机 Appointment 中,我们并不会涉及到使用 Apache HTTP Server 搭建 Web 服务。

主要是下面内容会涉及 Web 路径爆破,靶机的 Web 服务是基于 Apache HTTP Server 搭建的,因此这里简单介绍一下 Apache HTTP Server。

补充 URL,计算机专业的同学可能会比较熟悉,URL 是 Uniform Resource Locator 的缩写,统一资源定位符,用于定位互联网上的资源。URL 由协议、主机、端口、路径、查询参数、锚点组成。不多说,如果这个都不知道,那就太尴尬了

Gobuster

Gobuster是一种用于目录和子域名爆破的开源工具。它通过对目标网站进行字典攻击,逐个尝试可能的目录和子域名,来发现隐藏的目录或敏感信息。

以下是Gobuster的一些特点和用法:

特点:

  • 多线程处理:Gobuster 可以使用多个线程同时进行爆破,提高爆破速度。
  • 多种模式:它支持多种爆破模式,包括目录爆破、子域名爆破等。
  • 自定义字典:你可以使用自定义的字典文件来指定爆破时尝试的目录或子域名列表。
  • 状态码过滤:你可以设置过滤规则,只显示特定状态码的响应结果,以过滤掉不感兴趣的目录或页面。

简单用法:

  1. 安装 Gobuster:你可以从 https://github.com/OJ/gobuster/releases 下载或者通过包管理工具安装,比如 apt install gobuster 安装。

  2. 运行 Gobuster:使用命令行界面执行 Gobuster,指定目标 URL、爆破模式、字典文件等参数。例如:

    gobuster dir -u http://example.com -w /path/to/wordlist.txt

    这将对 http://example.com 进行目录爆破,使用指定的字典文件进行尝试。

  3. 查看结果:Gobuster 会显示每个尝试的目录或子域名,并显示响应状态码和页面大小等信息。你可以根据需要分析结果并进一步探索目标。

更多内容建议 --help 或者查看官方 Github 项目 https://github.com/OJ/gobuster

关于字典,这里简单提及一下,字典是指用于爆破的文件,其中包含了可能的变量参数。字典是爆破的核心,字典越大,爆破的效果越好,但是也会增加爆破的时间。这里的爆破字典内容主要是目录和子域名。

如果你使用的是 Kali 在 /usr/share/wordlists 中有一个字典合集,其中包含了很多字典文件,你可以使用这些字典文件进行爆破。如果你使用的其它系统,推荐项目 https://github.com/danielmiessler/SecLists

SQL Injection

SQL Injection 通过在应用程序的输入字段中注入恶意的 SQL 语句,从而绕过预期的验证和过滤机制,对数据库进行非法操作或获取敏感信息。以下是一个简单的 SQL 注入的示例:

  • 假设有一个登录表单,用户需要输入用户名和密码才能登录。应用程序将用户提供的输入直接拼接到 SQL 查询语句中,如下所示:

    SELECT * FROM users WHERE username = '输入的用户名' AND password = '输入的密码';
  • 攻击者可以在用户名字段中注入恶意的 SQL 代码,以尝试绕过认证验证。例如,如果攻击者在用户名字段中输入 ' OR '1'='1'--,那么最终构成的 SQL 语句将变为:

    SELECT * FROM users WHERE username = '' OR '1'='1'--' AND password = '输入的密码';
  • 在这种情况下,由于 '1'='1' 永远为真,所以该 SQL 查询将返回所有用户的记录,绕过了密码验证步骤。

实际这里需要一定的 SQL 语法知识,如果你不熟悉 SQL 语法,回顾前面 SQL 中的内容,根据提示进行学习。

通过 SQL 注入登录后就是 flag 信息。

TIER 1: Appointment的更多相关文章

  1. E-Business Suite 12.2 startCD 50 Install Fails with Fatal Error: TXK Install Service oracle.apps.fnd.txk.config.ProcessStateException: OUI process failed Cannot install Web Tier Utilities

    在rhel7.2上,使用startCD 50安装ebs r12.2的使用,安装到38%的时候就报错,遇到了和以下文章类似的问题: http://www.cnblogs.com/abclife/p/49 ...

  2. Tier和RBD Cache的区别

    相同点 缓存 数据不会持久保存在ssd或者内存:预读回写直写 都需要解决缓存数据和磁盘数据不一致和“内存页”置换的问题. 差异点 缓存的位置不同,tier是rados层在osd端进行数据缓存,也就是说 ...

  3. 在magneto系统中输出tier price的最小值

    2012年6月16日星期六 Asia/Shanghai上午11时39分22秒 有的时候,我们想输出产品的tier price 的最小值!如图: 下面是解决的办法: 1. 在catalog/produc ...

  4. Tier和Layer

    在实际开发工作中.我们经常听到"架构设计"和"架构师"这种名词,它并不新奇和神奇,可是却非常少有人对"架构"有全面的了解和认识.更谈不上掌握 ...

  5. Sharing The Application Tier File System in Oracle E-Business Suite Release 12.2

    The most current version of this document can be obtained in My Oracle Support Knowledge Document 13 ...

  6. i.s.h.med Enhancement for cancelling an appointment

    This article intends to introduce my experience about enhancement for canceling an appointment. I tr ...

  7. WPF 渲染级别 (Tier)

    在WPF中,显卡的功能相差很大.当WPF评估显卡时,它会考虑许多因素,包括显卡上的RAM数量.对像素着色器(piexl shader)的支持(计算每个像素效果的内置程序,如透明效果),以及对顶点着色器 ...

  8. H265 Profile & Level & Tier 介绍

    H265/HEVC Profile Level Tier 档次.水平.等级 为了提供不同应用之间的兼容互通,HEVC/H265 定义了不同的编码 Profile 档次.Level 水平.Tier 等级 ...

  9. Force SDK to create Appointment programmatically in crm 2013 onPremise

    As I know based on this: msdn.microsoft.com/.../gg334289.aspx and community.dynamics.com/.../book-an ...

  10. Appointment Helper

    using System; using Microsoft.Xrm.Sdk; using Microsoft.Crm.Sdk.Messages; using Microsoft.Xrm.Sdk.Que ...

随机推荐

  1. 【题解】A18537.我心中珍藏的游戏

    题目跳转 思路: 题目问最多可以获得的额外伤害,其实就是询问在这些技能中,如何怎样选取一个最优的发动技能顺序使得攻击加成最大.我们可以把每一个技能看作成一个图的顶点,把每一个攻击加成看作图的边,权制为 ...

  2. 【前端】css js 全屏 esc退出全屏 滚动条隐藏 兼容火狐,文字超出容器长度省略号显示

    全屏 if (docElm.requestFullscreen) { docElm.requestFullscreen(); } else if (docElm.msRequestFullscreen ...

  3. SpringBoot使用@Value获取不到值的问题

    背景 在一次SpringBoot项目改造为Cloud的过程中,使用Nacos作为配置中心获取属性,改造后程序启动报错,查看日志,定位到代码: 解决方案 如果了解Bean的生命周期的同学应该知道,Spr ...

  4. 一文教你如何调用Ascend C算子

    本文分享自华为云社区<一文教你如何调用Ascend C算子>,作者: 昇腾CANN. Ascend C是CANN针对算子开发场景推出的编程语言,原生支持C和C++标准规范,兼具开发效率和运 ...

  5. testArticle

    Test Article This is a test article for ArticleSync. Test Edit...... test Edit

  6. MDK5常见问题

    (1)MDK5下载时未找到对应的芯片 解决方式:需要下载pack包. 官方链接:https://www.keil.com/dd2/pack/ 其它链接:https://blog.csdn.net/ni ...

  7. C# 配置文件增加自定义节点

    话不多说直接开撸! 首先创建一个Config的文件夹然后新增一个后缀名为.config的文件 配置文件的代码如下: <?xml version="1.0" encoding= ...

  8. LeetCode 72. Edit Distance 编辑距离 (C++/Java)

    题目: Given two words word1 and word2, find the minimum number of operations required to convert word1 ...

  9. C#.NET 读取PFX私钥证书并导出PEM格式私钥

    项目nuget引用 BouncyCastle. 读取证书 X509Certificate2 x509 = new X509Certificate2(lblPfxPath.Text, txtPfxPwd ...

  10. 服务器安装mysql

    数据库连接操作 修改root的hostupdate user set host='%' where user='root' and host ="127.0.0.1"flush p ...