关于制作第一款网安小工具的经验贴

2025-02-19 12:37:25 10 605 2


一直比较喜欢写分享内容,也喜欢能够帮助到别人得到认可。继上次写的项目被一些师傅评论是重复造轮子后(这里也是吸取了教训,幸好tools的师傅都比较礼貌,不至于有开喷的)

这篇文章的起源构思来自于上篇给我留言的一个师傅

      这段鼓励的话也给了我很大想法,我开始思考对于工具的看法

对我而言,技术入门是从成为一名脚本小子开始的。那时,我开始接触各类工具,尤其是在参与 CTF 竞赛以及进行攻防操作时所需的工具。这些开箱即用的工具着实为我们节省了不少精力。随着使用的深入,我对它们也有了更深刻的认识。

我将这些工具分为两类:一类是由使用需求直接催生的工匠型工具;另一类则是间接产生的创造型工具。创造型工具的制作门槛极高,通常是由某个领域的顶尖人才所打造,其效果也十分显著。不过,我们日常接触到的大多是工匠型工具,这类工具并未运用特别复杂的技术,为了满足需求,将繁琐的操作简单化。

我想强调的是,工具并非只有高精尖人才才能创造。我们可以把一些低劳动力消耗的工作脚本化,如果这种需求得到大众的认可,那这个工具无疑会受到广泛赞同。

但一个工具不被大众所需求,就意味着它不是好工具吗?答案显然是否定的。如果一个工具是为满足自身需求而制作,并且成功解决了自己面临的问题,那么对自己而言,它就是一个好工具。即便大众对此并无感,但自己有需求,换个角度看,这就是一种个性化定制。这种情况不仅适用于自己,对于客户来说也是如此。

举个例子,前段时间我自行开发了一款一键黑屏软件。不少师傅觉得它和“Win + L”组合键的功能一样,属于重复造轮子。但实际上,我开发这款软件是为了省去在黑屏不休眠和笔记本合上黑屏休眠这两种模式之间来回设置的麻烦。也许在别人看来这有些多此一举,但对我而言,它切实解决了一个小问题,尽管在契合大众需求方面并不成功,但培养了我会为了问题而去找办法解决的思维。


接下来,我想和大家分享一下我是如何想到要写工具的。时间回溯到大学二年级,那时我觉得课余时间比较充裕,便萌生了去参加一些面试的想法,主要目的是想了解一下安全领域的面试到底都考些什么内容。我先大致研究了一番招聘要求,但俗话说“百闻不如一见”,于是我直接投递了简历,并参加了几场面试。我的初衷很单纯,就是想找出那些自己答不上来的问题,以此明确自己的知识短板。

在面试过程中,抛开一些理论八股文,“你有没有自己开发工具的经验?”这个问题反复被面试官提及。也就是在那个时候,我意识到自己在开发项目,尤其是工具开发方面的经验严重不足。于是,我开始反向思考面试官提出这个问题的意图,如果我是面试官,我希望通过这个问题了解面试者哪些方面的情况呢?经过一番思索,我总结出以下几点:其一,考察面试者是否具备主动解决问题的技术能力;其二,了解面试者的解决问题思维逻辑;最后,团队协作能力

有了这样的认知后,我便抽空开始着手准备工具开发。一开始,我认为一个像样的工具得有图形用户界面(GUI),这样看起来才够专业、有格调。然而,我并不具备编写 GUI 的能力。考虑到自己对 Python 语言比较熟悉,我决定从 Python 入手,还去了解了诸如 Tkinter 之类的组件包。但实际操作起来,我发现这并不容易,我写出来的界面实在是惨不忍睹。

就在我感到有些沮丧的时候,人工智能的浪潮席卷而来,确切地说,是我真正开始接触并使用 AI 了。一个月10元接入api接口网页版的GPT - 4 的出现为我带来了转机,它可以根据我的需求生成合适的 UI 布局,并构建简单的框架。我至今仍清晰地记得,我开发的第一个工具是一个 URL 去重工具。在进行信息搜集时,我从 FOFA、Quake、Hunter 等平台以及子域名爆破过程中收集到大量域名,其中存在严重的重复问题。起初,我还四处寻找专门的去重工具,后来才发现,用 Python 的 set 集合就能轻松解决这个核心问题。有了核心代码后,我就像一个建筑师开始“建造房子”一样,把脚本交给 GPT,让它为我生成 GUI,就这样,我的第一个工具诞生了。现在想来,将这个简单的去重功能做成 GUI 确实有些多此一举,但它对我而言意义非凡,它引导我迈出了学习工具开发的第一步。对于很多同行来说,大家可能并非从开发起步,也很少接触 Python 的 GUI 编程,如果让我们去 B 站从头到尾看教程学习,难免会感到心累。我也是如此,于是我通过分析这个去重工具的代码,逐渐了解了一些基本的组件构成,正是从那时起,我学会了利用 AI 辅助学习。

随着我对工具功能需求的不断升级,我发现仅依靠网页版的 GPT - 4 已经无法满足我的要求了。就在这时,我接触到了 Cursor 这款应用。使用 Cursor 之后,我的开发效率得到了极大提升,就好比从之前每天跑到东边打水再到西边去喝的低效模式,转变为直接在水源处取水饮用。Cursor 的代码编写能力非常强大,与传统的 AI 相比,它生成的 GUI 界面不再是单调的大白框,而是更加炫酷、美观。我依旧采用之前学习的方法,通过阅读 Cursor 生成的代码来提升自己的能力。如果说之前 GPT - 4 就像搞中老师引导我入门代码学习,那么 Cursor 就如同大学老师,还是能直接到家教学的。或许有人会问,既然是通过阅读代码学习,为什么不直接去 GitHub 上找大佬们写的代码呢?他们的代码肯定比 AI 写得好。关于这个问题,我后面会给出建议。但在学习初期,如果有一个能够根据你的需求编写代码的“老师”,就相当于接受定制化教学,这样的学习效率显然会更高。

最后,我想和大家分享一些实际案例。最近,由于 DeepSeek 的出现,AI 审计代码又一次成为热门话题。我看到有公众号发布了一款 AI 审计工具,便去查看了它的源码。此前我也研究过 AI 审计相关内容,但一直不知道如何统一处理杂乱无章的 AI 输出结果。查看源码后,我发现原来可以使用 Prompt 进行统一指令设置,这让我对 Prompt 的使用有了新的认识,原来它可以是很长的一段话。不过,我在代码中并没有找到实现多文件联动审计的功能,于是我开始对这款工具进行评测,也想借此为一些同样好奇的同行介绍一下相关情况:

     首先声明这不是一个批评文章,因为其工具开源且不盈利,且给我了一些启发思路,为了避免明指是何项目引发误会,我接入了其审计的代码,保留了核心功能,在此界面上进行了二次创造进行评测,帮助很多感兴趣的师傅们介绍下。


逻辑体系:
核心通过接入对应APi接口,发包单个文件代码内容获得回复,未找到漏洞payload即跳过,否则记录以固定格式输出。


其亮点:
利用详细的promot


使用效果

我制作了一个普通的文件上传来审计,能正常识别。
但其实可以rce只显示路径穿越,再实测一个cms花了大概5小时,审计的结果就离谱起来了,基本乱报的,一方面和ai性能有关系,另一方面本身代码逻辑就是对文件都只是单个读取。哪怕能审查到有效漏洞,但爆出的漏洞数达百个根本没心思去检测。

当然抛开使用来说,如果是作为形式交差工具是无所谓的,这个除了界面看起来好看点,我个人觉得毫无作用,拿去当学生作品还能糊弄下(拿去毕设二开好像也说的过去)。不过整理到这,索性我将其添加一些略微实用的功能让项目看起来丰富一点,给有需要的人自己玩玩。
先看下运行图

Ai对话功能

接口提取功能

GitHub项目拉取到本地进行自动化配合AI审计

感兴趣的可以看看
https://github.com/LiChaser/AI_search

以上是这个测评内容,虽然工具本身效果不行,但我却受到一些启发。

工具的产生是被需要,那么上面这个华而不实的Ai审计工具有何作用?在某种层次上它让我意识到一个问题,为什么这个工具低效却受追捧,抛开DeepSeek的噱头,其较为黑客风的界面无疑是一个吸引选项,还看到有的评价,可以拿去糊弄领导,我看到也是哭笑不得,不过这和工具自身没关系,菜刀能砍人但不能说菜刀有问题吧。结合之前我自己失败的BlackAny,我想到了将其便捷性以及使用大量工具想要唤出时的需求同时保证比较有特殊的界面制作一个可以自定义添加的存储箱,这样唤出工具就和电影里Hacker一样,而不是打开文件夹然后挨个找。

在此说明,quicker还有一些类似工具都有这种功能(后面发现还有onefox新的衍生版本天狐v1.1),功能类似,但对于有着求异心理的我肯定希望充满自身风格所以我就写了这个工具。
自定义快捷键唤出即可


添加工具类


支持中英文

一个自制的小工具就完成了,当然它的完整性并不是很出色,但我们可以根据自己的需求去完善,包括变换颜色和样式满足个性化。
https://github.com/LiChaser/Hack_box

如果没有合适的想写的目标工具,可以拿这个去二开下或者尝试分析下,结构还是比较简单的,至少了解下基础构建函数。

那么回到原点,以完整的视角,制作前的准备:
遵循“发现真实需求 → 做出能用的雏形 → 倾听使用者的意见 → 逐步升级改进”这样的逻辑

就如同滚雪球一般,工具会在不断优化中变得越来越强大。就拿 Notion 笔记软件来说,它最初不过是一个普通的记事本,经过不断发展,如今甚至能当作数据库使用。说不定你现在随手制作的小工具,未来也会成为改变很多人工作方式的神器。当积累了足够的经验后,再投身于打造功能完备、更具强大性能的团队工具时,这种转变会显得自然流畅。

对于新手而言,该如何开启工具制作之旅呢?我的建议是,先明确自己的一项具体需求。确定需求后,在脑海中构思出工具大致的模样。这时,你可以在GitHub上搜索相关的类似工具,仔细观察它们的界面设计,亲自上手体验一番,从中汲取灵感。要是觉得自己动手有难度,也可以借助 AI 的力量,让它帮你搭建一个基础的架构,然后在此基础上进行修改和完善。

打个比方,你可以直接跟 AI 说:“你是一个网络安全爱好者,想要制作一款工具,用 Python 给我做个带文件选择按钮的窗口,要深蓝色背景,按钮做成手机 APP 那种扁平风格。”

如果你对代码不太熟悉,也不用着急。可以先对架构代码进行审计和了解,这样后续进行修改时就会得心应手。看到这里,你可能还是有些一头雾水,但只要勇敢地迈出第一步,开始尝试制作,就会惊喜地发现,做一个小小的工具并非难事。毕竟,一款优秀的工具是技术与需求的完美结合。我们要善于发现需求,再一步步提升自己的技术能力。现在,AI 或许还无法实现特别复杂的功能,但对于初学者制作工具来说,已经足够提供基础的帮助了。当你学会了基础的界面设计和功能结构制作,就意味着你已经成功走出了制作工具的第一步.

当你完成第一个自制工具的原型时,就像木匠打造出第一把椅子——虽然榫卯结构还不够精密,但已具备基本功能。这个阶段不必苛求完美,真正重要的是你已成功搭建起技术实现的脚手架.

以上就是本次全部内容,虽然感觉tools里面的师傅应该大部分都比我大,可能我有点班门弄斧了,我写文章的一般都是以过去视角为参照,因为我以前想写工具但一直没思路,如果当时能看到这样一篇分享贴,或许能给我一些启发和动力。所以我就把自己的经历和心得写下来,真心希望能给有同样需求的师傅们提供一点帮助。要是文章里有什么表述不当或者考虑不周的地方,还请各位师傅多多包涵

关于作者

Licharse5篇文章21篇回复

评论10次

要评论?请先  登录  或  注册
  • 10楼
    昨天 12:32

    师傅用心了,很棒了。

  • 9楼
    前天 18:31

    很棒已经使用,哈哈。

  • 8楼
    前天 11:33

    记得开始接触挖洞方面的知识,问了认识的都说可以多看看乌云或者公众号来学xi。然后关注了一堆网安的公众号,有的10篇里面9篇弱口令大法,发一篇得了,开始真的浪费我很多时间去找有质量点的报告。后面还是咸鱼买的几个G的报告来看😓,有些还是比较小众的公众号更能学点东西,起码能看出来是用心的而且有思路写着。

  • 7楼
    前天 11:28

    这个界面看起来好像挺炫酷。。但是也就挺炫酷了。。我也做了一款AI的小工具,类似于cursor的agent模式,可以自己分析文件,找出需要的点

  • 6楼
    前天 11:26
    goddemon

    你会发觉很有意思的现象,很多市面上都在吹ai自动化审计 尤其是一堆基于deepseek类的ai二开的工具,但是实际效果不能说毫无意义,只能说审计结果几乎全是不怎么样,至少深度处理是这样的。 当然啦 还是有好用的 就像某grep结合他自家业务联动的ai。关键问题其实就是 代码关键性的问题如何去解决 像楼主说的cursor的话确实还有一些可行性 唯一区别就是需要钱罢了

    1
    chenjia404

    说白了 都是骗钱的 小密圈加一加 获取源码,其实就是个鸡肋工具 公众号那些加小密圈获取源码的, 骗钱是关键

    2

    现在都这样,完全不理解为什么有的公众号看着粉丝很多,但发的都是些无意义的报告,也不发点自己原创的内容起码能看到文笔的用心,感觉现在公众号很多做的不是知识分享变成记者报道转载了😄。还有就是三天两头就开喷挂人,这样的还开着知识星球,还很多人阅读和买单。

  • 5楼
    前天 03:53
    goddemon

    你会发觉很有意思的现象,很多市面上都在吹ai自动化审计 尤其是一堆基于deepseek类的ai二开的工具,但是实际效果不能说毫无意义,只能说审计结果几乎全是不怎么样,至少深度处理是这样的。 当然啦 还是有好用的 就像某grep结合他自家业务联动的ai。关键问题其实就是 代码关键性的问题如何去解决 像楼主说的cursor的话确实还有一些可行性 唯一区别就是需要钱罢了

    1

    说白了 都是骗钱的 小密圈加一加 获取源码,其实就是个鸡肋工具 公众号那些加小密圈获取源码的, 骗钱是关键

  • 4楼
    前天 01:33

    你会发觉很有意思的现象,很多市面上都在吹ai自动化审计 尤其是一堆基于deepseek类的ai二开的工具,但是实际效果不能说毫无意义,只能说审计结果几乎全是不怎么样,至少深度处理是这样的。 当然啦 还是有好用的 就像某grep结合他自家业务联动的ai。关键问题其实就是 代码关键性的问题如何去解决 像楼主说的cursor的话确实还有一些可行性 唯一区别就是需要钱罢了

  • 3楼
    3 天前 21:39
    chenjia404

    这个除了界面看起来好看点 😥 我可是一丁点都受不了这种界面UI 太受不了了,另外代码审计 除了提示词指令,还有上下关联的问题,当然,这个要开发还得看GPT接受的上下文长度,AI不是鸡肋,关键看怎么用罢了

    1

    是的,只是单纯测评了那个工具的源码,不过目前AI审计多文件代码互联的,开源的还没怎么接触到过,倒是cursor除了读代码性能,多文件分析的能力也很强有这方面的潜力,同时看还有很多博主用cursor来做本地知识库助手的,就是现在cursor打击白嫖有点狠,现在直接ban邮箱了,之前用2925无限刷。

  • 2楼
    3 天前 21:35

    感谢大佬分享

  • 1楼
    3 天前 20:18

    这个除了界面看起来好看点 😥 我可是一丁点都受不了这种界面UI 太受不了了,另外代码审计 除了提示词指令,还有上下关联的问题,当然,这个要开发还得看GPT接受的上下文长度,AI不是鸡肋,关键看怎么用罢了