【持续更新】【课程笔记】小迪安全课程知识笔记

图片[1] - 【持续更新】【课程笔记】小迪安全课程知识笔记 - 极核GetShell

前言

由于基础课过于基础,笔者只挑选重要的进行记录,有些已经掌握的便不再重复记录。

域名网站的分类

  • 主站点
根域名站点:get-shell.com
www站点:www.get-shell.com
  • 分站点(子域名站点)
子域名站点:hackhub.get-shell.com
多级子域名站点:test.hackhub.get-shell.com
  • 端口站
status.get-shell.com:8080
  • 目录站
tool.get-shell.com/web/

APP的开发分类

  • 原生开发:APP原生开发架构通常指的是在特定的移动操作系统平台上,使用官方提供的开发语言、开发类库和开发工具进行应用程序开发的方法。原生应用使用平台特定的编程语言和工具进行开发。例如,Android平台通常使用Java或Kotlin,而iOS平台使用Objective-C或Swift
  • 网页打包APP:网页打包APP是一种技术,它允许将网页应用程序封装成原生应用程序的形式,以便在移动设备上运行。这种技术的核心在于使用WebView控件将网页嵌入到原生应用程序中,使其可以像原生应用程序一样运行。

漏洞复现无回显

漏洞复现无回显是指在漏洞复现的过程中,攻击者虽然能够触发漏洞,但是无法直接看到漏洞触发的结果或者输出。这种情况通常发生在服务器配置或者环境限制了输出,导致攻击者无法直接获取到漏洞利用的结果。在这种情况下,攻击者需要采用一些特殊的技术或方法来间接验证漏洞的存在和利用效果。验证的意义在于是否存在命令执行漏洞。

造成的原因一般是代码层面的函数方法的问题,有的函数可以执行命令并且回显,有些函数则只能命令执行不能回显。


1、反弹权限(反弹Shell)

在目标主机上执行反弹Shell命令,一键生成反弹Shell:Online – Reverse Shell Generator

2、数据带外

就是让目标主机执行一些命令,然后在服务端开启监听,如果目标主机执行命令后,服务端有访问痕迹,说明就是成功执行。

常用的方法有DNSLOG验证、Ping验证等。

3、延迟判断

有点类似于SQL注入的延时注入,可以用Ping命令验证,例如:Linux的 ping -c 3 是执行三秒的ping、Windows的ping -n 3 是执行三秒的ping正常情况下命令执行后,HTTP请求响应包的时间应该在3秒左右。

4、写可访问文件

利用写文件的命令来验证是否存在漏洞,例如:echo test > 1.txt 这样写了1.txt到当前工作目录,如果可访问到,说明存在命令执行。

数据传输格式

HTTP数据传输格式是指在客户端和服务器之间通过HTTP协议传递数据的格式。常见的HTTP数据传输格式包括以下几种:

  • JSON
  • XML
  • HTML
  • websocket
  • Plain Text(普通文本)
  • Form Data(HTML表单数据)
  • 二进制

JSON

格式:application/json,用途:现代Web应用中用于传输结构化数据,尤其是RESTful API。

{
  "id": 2,
  "name": "Bob",
  "email": "bob@example.com",
  "address": {
    "street": "123 Main St",
    "city": "Springfield",
    "state": "IL",
    "postalCode": "62704"
  }
}
  • JSON
  • XML
  • HTML
  • Plain Text(普通文本)
  • Form Data(HTML表单数据)
  • 二进制

XML

复杂嵌套结构,举例:描述一个订单信息,包括用户信息和商品列表

<Order>
    <OrderID>1001</OrderID>
    <Date>2024-12-03</Date>
    <Customer>
        <ID>1</ID>
        <Name>Alice</Name>
        <Email>alice@example.com</Email>
    </Customer>
    <Items>
        <Item>
            <ProductID>501</ProductID>
            <ProductName>Laptop</ProductName>
            <Quantity>1</Quantity>
            <Price>1200.50</Price>
        </Item>
        <Item>
            <ProductID>502</ProductID>
            <ProductName>Mouse</ProductName>
            <Quantity>2</Quantity>
            <Price>25.00</Price>
        </Item>
    </Items>
    <TotalAmount>1250.50</TotalAmount>
</Order>

WebSocket

WebSocket 是一种全双工通信协议,允许客户端和服务器之间保持一个长连接,并可以在连接上自由交换数据。以下是 WebSocket 的通信示例,包括握手阶段数据传输阶段

WebSocket 握手阶段

客户端请求(HTTP 升级请求)

GET /chat HTTP/1.1
Host: example.com:8080
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Origin: http://example.com

服务器响应(升级确认)

HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=

WebSocket 数据传输阶段

客户端发送数据帧

WebSocket 数据是以帧的形式发送的,以下是一个简单的文本帧示例(JSON 格式):

帧的内容:

{
  "type": "message",
  "data": "Hello, Server!"
}

通过 WebSocket 协议发送,帧在二进制形式中表现如下:

0x81 0x12 0x7B 0x22 0x74 0x79 0x70 0x65 0x22 0x3A 0x22 0x6D 0x65 0x73 0x73 0x61 0x67 0x65 0x22 0x2C 0x22 0x64 0x61 0x74 0x61 0x22 0x3A 0x22 0x48 0x65 0x6C 0x6C 0x6F 0x2C 0x20 0x53 0x65 0x72 0x76 0x65 0x72 0x21 0x22 0x7D

服务器发送数据帧

服务器回应一个文本帧:

{
  "type": "response",
  "data": "Hello, Client!"
}

对应的二进制帧内容:

0x81 0x11 0x7B 0x22 0x74 0x79 0x70 0x65 0x22 0x3A 0x22 0x72 0x65 0x73 0x70 0x6F 0x6E 0x73 0x65 0x22 0x2C 0x22 0x64 0x61 0x74 0x61 0x22 0x3A 0x22 0x48 0x65 0x6C 0x6C 0x6F 0x2C 0x20 0x43 0x6C 0x69 0x65 0x6E 0x74 0x21 0x22 0x7D

1 2

THE END
想说的话 1  QQ & 微信交流群: 点击查看加群方式
2  本站运营不易,以真心❤️换真心💕,如果帮助到你,可以 推荐给朋友 或者 开通金贝会员 支持一下本站!
3  请不要进行任何非授权的网络攻击,如果造成任何损失均由使用者本人负责,与本站和原作者无关!
点赞83 分享
茶谈区 共13条

请登录后发表评论