1.snownlpånltkä»ä¹å
³ç³»
2.2022Pwnhub春季赛相关体验及wp
3.使用 Elasticsearch 和 LlamaIndex 进行高级文本检索:句子窗口检索
snownlpånltkä»ä¹å ³ç³»
没ä»ä¹å ³ç³»å§ã SnowNLPçå¼åè å¨GitHubæè¿°ä¸æå°æ¯åTextBlobdçå¯åæåçSnowNLP,èè¿ä¸¤ä¸ªç±»åºçæ大åºå«å°±æ¯SnowNLPå ·ä½å®ç°çæ¶å没æç¨nltkï¼ä¸»è¦é对ä¸æææ¬å¤çã
Pwnhub春季赛相关体验及wp
首次参加Pwnhub举办的大型公开赛,体验令人满意。Pwnhub的声誉名副其实,比赛中只有四个解题,且难度集中在easyrop。比赛前期的java源码编译过程宣传充分到位,Pwnhub历来以举办公开月赛闻名,此次公开赛规模空前,奖励丰厚。
比赛题目多样,涵盖了web、misc、crypto、re、源码资本抖音合作pwn等多个方向,还加入了ACM、OCR、以及汇编等不同类型的题目,甚至引入了网页版的传奇游戏,以减轻比赛的枯燥性。题目设计全面,从多个方面考验参赛者的个人能力。
比赛流程流畅,靶机启动迅速,不限制数量,后期取消了靶机时间限制,但在所有靶机都开放在同一IP地址上,Ios和平精英绘制源码端口号可以遍历,加之不是动态flag,可能导致蹭取flag的情况。
首次在CTF比赛中遇到使用Flash游戏的题目,新颖有趣,促使我迅速安装Flash并进入主办方设置的游戏。游戏类题目共有四个小题,最后一个题需要获取服务器的shell,可以视为半个web挑战。
注册账号,创建角色登录游戏,发现公告栏中明确显示了flag,十分友好。iPad4查源码下一步是购买题目中的元宝召唤道具,但需要通过抽奖将绑定元宝转化为元宝,再购买。打死召唤出的怪物后,会掉落flag之书1,注意掉落的flag之书可以被其他玩家捡走,谨防被抢,我的flag为flag{ nonono_notmola}。
主办方放出服务器源码,虽然经过修改,但仍能从中找出一些漏洞。从log.php中可以获取生成token的密钥,允许任意用户登录其他账户。QQ等级加速网页源码在log.php中,理论上存在注入漏洞,但线上复现不成功。web方面的其他漏洞未能发现,获取shell需要对游戏服务器文件进行逆向工程。
web部分考察知识新颖且难度适中。在EzPDFParser中,通过java写的PDF解析器在解析PDF时触发log4j2漏洞,搭建恶意JNDI服务器,修改PDF文件即可触发漏洞。在easyCMS中,通过测试MySQL联通性,利用MySQL读取文件,通过Rogue-MySql-Server实现,使用PHP脚本操作。
在baby_flask中,利用flask模板渲染不会更新的问题,通过生成个模板并在缓存刷新时执行payload,即可获取flag。Misc部分需要使用裸眼3d技巧,借助stegsolve工具将两张图分开,获取flag{ nice_pwnhub}。在其他页面的签到中,通过关于页面的视频中的二维码找到flag。
比赛持续小时,时间较长,但某些类别的题目数量似乎不是很多,如web部分,队伍数量较多,完成三个题后,期待后期上新题,可惜未能如愿。整体体验良好,通过赛题学习到许多知识,期待Pwnhub举办更多类似的公开赛!
使用 Elasticsearch 和 LlamaIndex 进行高级文本检索:句子窗口检索
在年,RAG技术及其应用如火如荼,特别是在构建Q/A聊天机器人和上下文驱动的代理方面,LlamaIndex和开源框架Langchain的兴起极大地推动了开发者构建复杂应用的能力。本文将深入探讨一种名为句子窗口检索(SWR)的高级RAG技术,它通过在定制知识库中选择性地提供上下文,提升了文本检索的质量和效率。
LlamaIndex作为一个强大的数据框架,专为LLM应用程序设计,支持私有或特定领域的数据处理。它开源且可广泛应用于各种场景,想要了解更多,可以访问GitHub项目。
句子窗口检索的核心是围绕查询选择性地获取上下文,然后在生成文本时整合更丰富的上下文。它通过限定在特定句子(“窗口上下文”)范围内,增强了信息提取的精确性和相关性。然而,选择合适的上下文窗口大小至关重要,以避免关键信息遗漏。
本文将指导如何利用Elasticsearch作为向量数据库,结合LlamaIndex设置SWR管道。首先,通过Docker启动单节点Elasticsearch实例。接下来,我们使用Jupyter Notebook设计应用,安装Python依赖,包括在pdf文件中使用LlamaIndex进行数据加载和处理。构建句子窗口索引和查询引擎是关键步骤,包括Node Parser、Service Context、Storage Context的创建,以及后处理器的定义,如SentenceTransformerRerank。
通过Kibana可视化结果,你可以尝试使用这个框架,甚至可以下载源代码进行自定义和比较性能。源码链接和更多相关信息可以在相关文档中找到。本文旨在提供详细的实践指导,欢迎探索并应用到你的项目中。