Glad to meet with you!

很高兴可以在博客与未曾谋面的大家相遇,在这里我将分享我的日常所学和思考,后续有时间机会将会完善博客功能,与大家交流,共同进步。

I am delighted to meet you all here on my blog, where I will share what I have learned and thought about on a daily basis. In the future, I will improve the functionality of my blog and communicate with you to promote mutual progress.🤓🥳

RAG基础

RAG 是一种结合 “检索” + “大语言模型生成” 的技术框架。它的核心思想是:

在回答用户问题前,先从大量文档中找出最相关的片段,再把这些片段喂给大模型,让它基于真实信息生成答案。

这样可以避免大模型“胡说八道”(幻觉),提高回答的准确性。

RAG 分为两个阶段:

  1. 离线阶段(Offline / Indexing Phase) —— 提前准备数据
  2. 在线阶段(Online / Inference Phase) —— 实时响应用户

离线阶段(Offline / Indexing Phase)

流程步骤:

步骤 名称 作用 输出
1 数据采集 从 PDF、网页、数据库等获取原始文档 原始文本集合
2 数据清洗 去除 HTML 标签、广告、乱码、重复内容等 干净文本
3 数据分块(Chunking) 将长文本切分为适合模型处理的小段(如 256~1024 tokens) 文本块列表(chunks)
4 向量化(Embedding) 用 Embedding 模型将每个文本块转为高维向量 向量列表(embeddings)
5 存入向量数据库 <文本块, 向量> 对存储到向量数据库(如 FAISS、Milvus、Pinecone) 可检索的向量索引

关键输出:一个向量数据库,里面存着所有知识的“数学表示”。

在线阶段(Online / Inference Phase)

流程步骤:

Read more >

AI基础

记录一下,一些在b站大学很早就学了的ai基础,一直拖着没有怎么整理

基础激活函数

image-20251018090726592

image-20251018091205032

image-20251018092157128

image-20251018093223819

梯度下降

image-20251018102659948

Read more >

2025ciscn复盘

AI-WAF

这道题不难,由于我有段时间没有看sql了,当时做题的时候先跑了一下fuzz,发现过滤了很多很多东西,注入不了,由于环境开不了,当时也想到了可能是mysql的新特性,但是没有继续研究,可惜了。

总结一下被过滤的东西,它不区分大小写,select,sleep,having,or,as,and,end.case,union,group,concat,order,where等等。

TABLE statement

找了个数据库试了一下

mysql> select * from movies;
+----+-------------------------------------------------------+------------+----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+--------+---------------------+
| id | title                                                 | date       | star                                                     | img                                                                                                                            | wish   | created_at          |
+----+-------------------------------------------------------+------------+----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+--------+---------------------+
| 31 | 咱们结婚吧                                            | 2025-11-11 | 高圆圆,姜武,李晨                                         | https://p0.pipi.cn/mmdb/d2dad592b12f2a7e12f0ee28e025fa1e196be.webp?imageMogr2/thumbnail/2500x2500%3E                           |  53763 | 2025-11-09 16:25:54 |
| 32 | 一只绣花鞋                                            | 2025-11-11 | 刘超,陶德燕,王迎奇                                       | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345c5beea409c3160dda0672055f58c06.jpg?imageMogr2/quality/80                   |  21886 | 2025-11-09 16:25:54 |
| 33 | 洛桑的家事                                            | 2025-11-11 | 金巴,加华草,扎西                                         | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3349a3d605119bf01e862d9f89854d430d.jpg?imageMogr2/quality/80                   |   1803 | 2025-11-09 16:25:54 |
| 34 | 鬼灭之刃:无限城篇 第一章 猗窝座再袭                  | 2025-11-14 | 花江夏树,鬼头明里,下野纮                                 | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345c4ea4a13cbcea40a9c28f600953fb0.jpg?imageMogr2/quality/80                   | 682243 | 2025-11-09 16:25:54 |
| 35 | 惊天魔盗团3                                           | 2025-11-14 | 杰西·艾森伯格,伍迪·哈里森,戴夫·弗兰科                    | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3346ec8b5c28014ea40fa03778d33581ed.jpeg?imageMogr2/quality/80                  | 313487 | 2025-11-09 16:25:54 |
| 36 | 寻砖                                                  | 2025-11-14 | 张亮,鄂靖文,刘俊孝                                       | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3346e7f0c8b72a99a13cc1bd1e4fb34de7.jpg?imageMogr2/quality/80                   |    348 | 2025-11-09 16:25:54 |
| 37 | 三滴血                                                | 2025-11-15 | 胡歌,文淇,高子淇                                         | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345c5be14d01e84ea98a1029117b73f44.jpg?imageMogr2/quality/80                   |  18726 | 2025-11-09 16:25:54 |
| 38 | 菜肉馄饨                                              | 2025-11-15 | 周野芒,潘虹,茅善玉                                       | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345cbf877e3f6701e8dd4bb320ef8ce12.jpg?imageMogr2/quality/80                   |   7794 | 2025-11-09 16:25:54 |
| 39 | 红豆                                                  | 2025-11-15 | 任达华,邓丽欣,魏浚笙                                     | https://p0.pipi.cn/mediaplus/bigdata_mmdb_mmdbtask/0fa3345c4ea6e3392a1faefd45763cd8794f3.jpg?imageMogr2/thumbnail/2500x2500%3E |    752 | 2025-11-09 16:25:54 |
| 40 | 次仁的夏天                                            | 2025-11-16 | 巴金旺甲,伍金尼玛,南措卓玛                               | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345c25c77e78b13f67eab8b5610418fc5.jpg?imageMogr2/quality/80                   |    155 | 2025-11-09 16:25:54 |
+----+-------------------------------------------------------+------------+----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+--------+---------------------+
10 rows in set (0.00 sec)

mysql> table movies;
+----+-------------------------------------------------------+------------+----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+--------+---------------------+
| id | title                                                 | date       | star                                                     | img                                                                                                                            | wish   | created_at          |
+----+-------------------------------------------------------+------------+----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+--------+---------------------+
| 31 | 咱们结婚吧                                            | 2025-11-11 | 高圆圆,姜武,李晨                                         | https://p0.pipi.cn/mmdb/d2dad592b12f2a7e12f0ee28e025fa1e196be.webp?imageMogr2/thumbnail/2500x2500%3E                           |  53763 | 2025-11-09 16:25:54 |
| 32 | 一只绣花鞋                                            | 2025-11-11 | 刘超,陶德燕,王迎奇                                       | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345c5beea409c3160dda0672055f58c06.jpg?imageMogr2/quality/80                   |  21886 | 2025-11-09 16:25:54 |
| 33 | 洛桑的家事                                            | 2025-11-11 | 金巴,加华草,扎西                                         | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3349a3d605119bf01e862d9f89854d430d.jpg?imageMogr2/quality/80                   |   1803 | 2025-11-09 16:25:54 |
| 34 | 鬼灭之刃:无限城篇 第一章 猗窝座再袭                  | 2025-11-14 | 花江夏树,鬼头明里,下野纮                                 | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345c4ea4a13cbcea40a9c28f600953fb0.jpg?imageMogr2/quality/80                   | 682243 | 2025-11-09 16:25:54 |
| 35 | 惊天魔盗团3                                           | 2025-11-14 | 杰西·艾森伯格,伍迪·哈里森,戴夫·弗兰科                    | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3346ec8b5c28014ea40fa03778d33581ed.jpeg?imageMogr2/quality/80                  | 313487 | 2025-11-09 16:25:54 |
| 36 | 寻砖                                                  | 2025-11-14 | 张亮,鄂靖文,刘俊孝                                       | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3346e7f0c8b72a99a13cc1bd1e4fb34de7.jpg?imageMogr2/quality/80                   |    348 | 2025-11-09 16:25:54 |
| 37 | 三滴血                                                | 2025-11-15 | 胡歌,文淇,高子淇                                         | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345c5be14d01e84ea98a1029117b73f44.jpg?imageMogr2/quality/80                   |  18726 | 2025-11-09 16:25:54 |
| 38 | 菜肉馄饨                                              | 2025-11-15 | 周野芒,潘虹,茅善玉                                       | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345cbf877e3f6701e8dd4bb320ef8ce12.jpg?imageMogr2/quality/80                   |   7794 | 2025-11-09 16:25:54 |
| 39 | 红豆                                                  | 2025-11-15 | 任达华,邓丽欣,魏浚笙                                     | https://p0.pipi.cn/mediaplus/bigdata_mmdb_mmdbtask/0fa3345c4ea6e3392a1faefd45763cd8794f3.jpg?imageMogr2/thumbnail/2500x2500%3E |    752 | 2025-11-09 16:25:54 |
| 40 | 次仁的夏天                                            | 2025-11-16 | 巴金旺甲,伍金尼玛,南措卓玛                               | https://p0.pipi.cn/mediaplus/friday_image_fe/0fa3345c25c77e78b13f67eab8b5610418fc5.jpg?imageMogr2/quality/80                   |    155 | 2025-11-09 16:25:54 |
+----+-------------------------------------------------------+------------+----------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------+--------+---------------------+
10 rows in set (0.01 sec)

效果一模一样。

Read more >

出题小记

开篇📜📜📜

迄今已经是我第二次参与出题,这次跟上次最大的不同就是对环境熟悉多了,对知识也清晰了些,解决问题的能力在ai的辅助下有了质的飞跃,还记得当时查博客,查的网页数都数不过来,还不一定有解决方案。不过依旧因为自己的粗心和大意容易浪费时间

首先就是前一两天测好的东西,然后再看就打不通了,有时候人真的会无语,哈哈。然后就捯饬捯饬,重新又搞了一遍。发现心态也越来越好了,哈哈,以前搞不好还会有点热,当然现在也会有点热。
然后就是写了个重复的代码,然后一直测试测试,因为忘记打开报错了,就啥也没显示,我以为打开了,反反复复就是不是想要的效果,所以吃一堑长一智。

一✒️

准备第一次出java语言的漏洞题目,其实也就是个log4j的CVE

然后也是一个星期左右吧,在AI的帮助下其实实现起来轻松很多。这里其实最令我无语的是还是环境的问题,这个题目的出题经历让我认识到了,在需要多服务和网络跨来跨去的时候,一定要先确定网络是否能通,端口是否正常。我这里涉及到一个端口问题,这个问题让我百思不得其解然后折磨了一整个下午。我基本上把所有问题排除了,但是这个题目还是没有达到我想要的回显效果,我监听了4444端口,起的http服务下的资源也转发下载成功了,然后docker中的配置和java版本等等,pom.xml等等确定了无数次,反反复复得docker-compose up -d到docker-compose down,然后docker rmi ID 得十几次,就是不停换不停测,就是不行。然后我想是不是端口问题,然后echo了一个语句到4444没有反应,然后又起了一个4445监听,同样echo一个语句有反应,这时我立马就傻了。。。无语死了,随后换成了4445端口,就回显了有了反应,不知道为什么,并不是什么安全组问题,端口都是开放的。算是吃一堑长一智吧。
好在成功出出来了,没有白费功夫。

既然都说到这儿了,下面就对一些网络命令进行整理

网络命令进行整理

在 Linux 中,测试 网络是否通目标主机是否可达端口是否开放 是日常运维和渗透测试中的常见操作。以下是几个最常用、实用的命令:


🔹 1. ping —— 测试主机是否可达(ICMP 层)

ping 192.168.1.100

✅ 优点:快速判断目标主机是否在线 ❌ 缺点:很多服务器禁 ping(防火墙过滤 ICMP),所以 ping 不通 ≠ 主机宕机


🔹 2. telnet —— 测试 TCP 端口是否开放(最经典)

telnet 192.168.1.100 4444
  • 如果连接成功(出现空白或提示符)→ ✅ 端口开放
  • 如果提示 Connection refused → ❌ 端口关闭(服务没开)
  • 如果卡住/超时 → ⚠️ 端口被防火墙过滤(可能开放但屏蔽了)

💡 安装 telnet(如未安装):

Read more >

关于php文件上传和解析的tmp目录作用及问题

关于php文件上传和解析的tmp目录作用及问题

📌 什么是 $_FILES['file']['tmp_name']

在 PHP 中,当你通过 HTML 表单上传一个文件时,PHP 会将这个上传的文件先保存到服务器的一个临时目录中,这个路径就是:

$_FILES['file']['tmp_name']
示例说明:

假设你有一个上传表单:

<form method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="上传">
</form>

用户选择了文件 shell.php 并提交后,在 PHP 脚本中你可以这样访问它:

if ($_FILES['file']) {
    echo $_FILES['file']['name'];     // shell.php(客户端原始文件名)
    echo $_FILES['file']['tmp_name']; // /tmp/phpABC123(服务器上的临时路径)
}

🔁 临时文件路径的作用是什么?

✅ 1. 上传文件的临时存储位置

  • 当浏览器上传文件到服务器时,PHP 会先把文件写入一个临时目录(通常是 /tmp)。
  • 这是为了防止上传过程中服务器资源被长期占用。
  • 如果你不处理这个临时文件(比如没有调用 move_uploaded_file()),那么上传完成后,这个文件会被自动删除。

✅ 2. 用于后续操作:移动、重命名、检查内容等

一旦你得到了临时路径,就可以对文件进行各种操作:

✅ 移动文件到指定目录
$upload_dir = 'uploads/';
$tmp_name   = $_FILES['file']['tmp_name'];
$target     = $upload_dir . basename($_FILES['file']['name']);

if (is_uploaded_file($tmp_name)) {
    move_uploaded_file($tmp_name, $target);
}
✅ 检查文件内容(如是否包含 PHP 代码)
$content = file_get_contents($_FILES['file']['tmp_name']);
if (strpos($content, '<?php') !== false) {
    die('不允许上传 PHP 文件!');
}
✅ 获取 MIME 类型或图片信息
$finfo = finfo_open(FILEINFO_MIME_TYPE);
echo finfo_file($finfo, $_FILES['file']['tmp_name']);

🧠 举个比喻帮助理解

你可以把 $_FILES['file']['tmp_name'] 看作是:

Read more >

docker容器部署简单php和nginx相关目录

docker容器部署简单php和nginx相关目录

在 Docker 容器中,目录结构的设计通常取决于基础镜像以及应用程序的需求。不过,有一些常见的目录和文件是许多容器都会用到的。以下是这些常见目录及其功能的概述:

常见目录结构

  1. /var/www/html/usr/share/nginx/html

    • 用途: 用于存放 Web 应用程序的静态资源(如 HTML 文件、CSS、JavaScript 和图片等)。
    • 示例: 在基于 Nginx 的容器中,静态网站内容通常放在 /usr/share/nginx/html 下;而对于 PHP 应用,可能会映射到 /var/www/html
  2. /etc/nginx

    • 用途: 存储 Nginx 的配置文件。

    • 子目录与文件:

      • nginx.conf: 主配置文件,定义了 Nginx 的全局设置。
  • conf.d/: 包含额外的配置文件,通常是针对不同站点或服务的配置片段。
    • sites-available/sites-enabled/: 类似于 Apache 的配置管理方式,前者存储所有可用的站点配置,后者通过符号链接指向启用的站点配置。
  1. /etc/php/usr/local/etc/php

    • 用途: 存储 PHP 的配置文件。

    • 子目录与文件:

      • php.ini: PHP 的主要配置文件,控制 PHP 的运行时行为。
  • conf.d/: 包含其他 PHP 扩展的配置文件。
  1. /var/log/nginx/var/log/php-fpm

    • 用途: 存储日志文件。

    • 示例:

      • access.log: 记录所有的访问请求。
  • error.log: 记录错误信息。
  1. /usr/src/opt

    Read more >

低迷中走来

  迷茫不会毁掉一个人,堕落才会。我不后悔自己浪费的时间和放纵,因为我并不是一无所获,可惜但不遗憾。
                                                          --题记						          

已经大二下了,自我感觉进入大二下相比以往的第一年和上个学期,这个学期放松了很多,懈怠了很多。并没有按照预期一样努力和学习,前前后后吧,几个月,具体可以从寒假追溯到近些日子。

可以先细数做了些什么吧,总体来说就是娱乐和放松。刷视频、打游戏、看各种好玩东西,睡觉,聊天,然后不干这些的时候可能就是放空或运动。总体上来说很轻松,哈哈,说难听点就是摆烂。学习上吧,零零碎碎,安全上面并没有进步,会的还是以前会的东西,算法嘛,垃圾,不看答案写不出的那种,当然有些看了也看不懂。非要说学了点什么,只能说学了点人工智能方面的东西,不过也是纸上谈兵,没深究,还有各种新闻变化和行业分析吧,总的来说感觉AI真的要改变很多东西,coze和dify这种集成各种大模型的AI应用开发平台令我叹为观止,方便简洁,可用性高,主要是提升效率和事务。Agent也让我感觉到了未来产品的发展方向,感觉AI时代普通产品是没有技术壁垒的,真正要做的是用户、市场、营销,感觉能否洞察需求才是关键,也开始明白和理解最近看到的话,百分之八十的市场和营销,百分之二十的技术。

学的杂了,了解多了,但却什么水平也不行,我也顺理成章的陷入了迷茫,老是思考,我学历这么差,又没技术,是考研还是就业,就业又该做什么,有人会要吗,反正奇奇怪怪。看到了就业和失业的文章,也知道留给自己的时间不多了,但是为什么我还是选择娱乐和放纵,哈哈。😶‍🌫️😶‍🌫️😶‍🌫️

因为我觉得从小到大,我基本上都在做我认为正确的选择或者他人认为正确的选择,可是是否真的正确,在现在的我看来,并非如此。所以本质上,同时空同条件下的我,会做的选择,与隔时空的我很难相同,也自然没有正确与否。所以我打算让自己也做一个快乐的决定,最起码身为大学生和大二的我来说,沉默成本可以接受。主要确实不想学,很不想学,所以自然而然就干脆随性一把。允许自己调整怎么能算一个错误呢,嘿嘿,大不了后面多努力些呗,虽然还可能摆,哈哈哈,但是应该不会像这么长了。

这段时间我也大胆的进入了一个我从未涉猎的领域,至于什么领域,懂得都懂。我发掘人与人之间是不能强行建立联系的,主动的那一方往往要承担巨大的风险,总得来说感悟颇多,一生受益吧,但是自己内心的美好还是没有改变的,只不过是丰富自己的见识罢了,我还是那个热爱生活和充满热情的中二少年,哈哈哈哈。🤐🤐🤐

写下这篇文章说明我也开始正常坐在陪伴我最久的伙伴面前,曾经流过口水的桌子,大一冷飕飕对着我寒暄的空调大哥,熟悉的环境,熟悉的码字,开始展望未来的日子,虽然马上放暑假了,爽,哈哈哈。

后续的计划吧,把想学的东西都学了,管他有没有用,未来怎么样,在过程中清晰吧,但是有一点我越来越坚定了,我想优秀,想更有实力。

好久操作hugo gitpages了,还得查查 哈哈哈😆😆😆

要是有缘看到这篇文章,希望你的生活和事业如你所愿,健康喜乐!❣️❣️❣️

✌️✌️✌️生活中的困难和不如意就是🤏🏼🤏🏼🤏🏼,加油,一切都在为美好铺垫🫵

2024HECTFweb

2024HECTFweb

babysql

直接万能密码过

image-20241208124649630

进入查询后台

测试发现是盲注,可以使用布尔盲注,这里采用时间盲注

接下来就是脚本

image-20241208124958291

首先跑一个fuzz字典看有哪儿些东西被过滤了

可以看到有些重要的东西也被过滤了,像空格,information_schema

image-20241208133152929

测试

from requests import post

base_url = 'xxx/worker.php'

payload = "1'/**/or/**/if((select/**/database())like/**/database(),sleep(3),0)#"
data = {"name":payload}

def check_time(data):
    try:
        res=post(base_url, data=data,timeout=2)
        #如果没有超时说明失败了
        return "failure"
    except:
        return "success"

print(check_time(data))

image-20241208141019513

Read more >

2024HECTFmisc

2024HECTFmisc

恶势力的聊天记录

vol3参考文档

Volatility 3 — Volatility 3 2.11.0 documentation

vol3使用参考

Volatility3内存取证工具使用详解-CSDN博客

vol2命令格式: volatility -f [image] --profile=[profile] [plugin]

这里需要注意 :Volatility3和Volatility2用法差不多,但不需要指定profile ,只是插件调用方式改变,特定的操作系统有特定的插件
python3 vol.py [plugin] -f [image]
 
常用插件:
    layerwriter:列出内存镜像platform信息
    linux.bash:从内存中恢复bash命令历史记录
    linux.check_afinfo:验证网络协议的操作功能指针
    linux.check_syscall:检查系统调用表中的挂钩
    linux.elfs:列出所有进程的所有内存映射ELF文件
    linux.lsmod:列出加载的内核模块
    linux.lsof:列出所有进程的所有内存映射
    linux.malfind:列出可能包含注入代码的进程内存范围
    linux.proc:列出所有进程的所有内存映射
    linux.pslist:列出linux内存映像中存在的进程
    linux.pstree:列出进程树
    mac.bash:从内存中恢复bash命令历史记录
    mac.check_syscall:检查系统调用表中的挂钩
    mac.check_sysctl:检查sysctl处理程序的挂钩
    mac.check_trap_table:检查trap表中的挂钩
    mac.ifconfig:列出网卡信息
    mac.lsmod:列出加载的内核模块
    mac.lsof:列出所有进程的所有内存映射
    mac.malfind:列出可能包含注入代码的进程内存范围
    mac.netstat:列出所有进程的所有网络连接
    mac.psaux:恢复程序命令行参数
    mac.pslist:列出linux内存映像中存在的进程
    mac.pstree:列出进程树
    mac.tasks:列出Mac内存映像中存在的进程
    windows.info:显示正在分析的内存样本的OS和内核详细信息
    windows.callbacks:列出内核回调和通知例程
    windows.cmdline:列出进程命令行参数
    windows.dlldump:将进程内存范围DLL转储
    windows.dlllist:列出Windows内存映像中已加载的dll模块
    windows.driverirp:在Windows内存映像中列出驱动程序的IRP
    windows.driverscan:扫描Windows内存映像中存在的驱动程序
    windows.filescan:扫描Windows内存映像中存在的文件对象
    windows.handles:列出进程打开的句柄
    windows.malfind:列出可能包含注入代码的进程内存范围
    windows.moddump:转储内核模块
    windows.modscan:扫描Windows内存映像中存在的模块
    windows.mutantscan:扫描Windows内存映像中存在的互斥锁
    windows.pslist:列出Windows内存映像中存在的进程
    windows.psscan:扫描Windows内存映像中存在的进程
    windows.pstree:列出进程树
    windows.procdump:转储处理可执行映像
    windows.registry.certificates:列出注册表中存储的证书
    windows.registry.hivelist:列出内存映像中存在的注册表配置单元
    windows.registry.hivescan:扫描Windows内存映像中存在的注册表配置单元
    windows.registry.printkey:在配置单元或特定键值下列出注册表项
    windows.registry.userassist:打印用户助手注册表项和信息
    windows.ssdt:列出系统调用表
    windows.strings:读取字符串命令的输出,并指示每个字符串属于哪个进程
    windows.svcscan:扫描Windows服务
    windows.symlinkscan:扫描Windows内存映像中存在的链接
──(root㉿kali)-[/home/messi/Desktop/vol3]
└─# sudo ln -s /home/messi/Desktop/vol3/vol.py /usr/local/bin/vol3
//添加一个软连接方便使用

列出所有进程

Read more >

2024强网杯-Misc-Pickle jail

2024强网杯-Misc-Pickle jail

第一次遇到jail类型的题目,而且还是在大赛上,并且还是这么难的情况,努力理解复现吧。

附件😣😰🥹:

pickle_jail.py 的文件

#!/usr/local/bin/python
from io import BytesIO
from os import _exit
from pathlib import Path
from pickle import Pickler, Unpickler
from sys import stderr, stdin, stdout
from time import time

from faker import Faker

Faker.seed(time())
fake = Faker("en_US")
flag = Path("flag").read_text()


def print(_):
    stdout.buffer.write(f"{_}\n".encode())
    stdout.buffer.flush()


def input(_=None, limit: int = -1):
    if _:
        print(_)
    _ = stdin.buffer.readline(limit)
    stdin.buffer.flush()
    return _


def bye(_):
    print(_)
    _exit(0)


players = [fake.unique.first_name().encode() for _ in range(50)]
print("Welcome to this jail game!")
print(f"Play this game to get the flag with these players: {players}!")
name = input("So... What's your name?", 300).strip()

assert name not in players, "You are already joined!"

print(f"Welcome {name}!")
players.append(name)

biox = BytesIO()
Pickler(biox).dump(
    (
        name,
        players,
        flag,
    )
)

data = bytearray(biox.getvalue())
num = input("Enter a random number to win: ", 1)[0]
assert num < len(data), "You are not allowed to win!"
data[num] += 1
data[num] %= 0xFF

del name, players, flag
biox.close()
stderr.close()

try:
    safe_dic = {
        "__builtins__": None,
        "n": BytesIO(data),
        "F": type("f", (Unpickler,), {"find_class": lambda *_: "H4cker"}),
    }
    name, players, _ = eval("F(n).load()", safe_dic, {})
    if name in players:
        del _
        print(f"{name} joined this game, but here is no flag!")
except Exception:
    print("What happened? IDK...")
finally:
    bye("Break this jail to get the flag!")

分析附件:

一上来这个代码就给我看懵了,对于python基本功不是很扎实的我,没看懂逻辑,一边拿ai一边分析。

Read more >