sec-audit
Skill3 starsChanged 9 days agoMITView on GitHub
用 AI 编程助手做安全审计(只读审代码 + 只读看服务器配置,不攻击生产):按“能变出钱或额度的地方”分模块、 两种模型各自独立审、再交给另一个做反方复核排除误报、每天审昨天的改动 + 轮换抽查一个高风险模块、 报告怎么写(严重程度、文件:行、怎么利用、影响、修法,不写任何密钥)、有高危才推群。 附我们真实审出来过的 20 多类漏洞清单(免费额度被薅、并发重复入账、撞库计数被清零、员工接管账号、 路径穿越到内网接口、Key 进日志……)。上线前、接新支付 / 新上游前、被刷了之后、想每天自动审时用。 触发词:安全审计、代码审计、漏洞、被盗刷、薅羊毛、渗透测试(只读)、每日审计、security audit, code audit, vulnerability review, fraud review.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- Markssuave/Markssuave-Agent-skillstheir own version, first seen Nov 8, 2026
- vishnujchandran/.agentstheir own version, first seen Oct 20, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- Markssuave/Markssuave-Agent-skills★ 1same name
- vishnujchandran/.agents★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- sec-edgeSkill
- sec-paymentSkill
- sec-secretsSkill
- sec-serverSkill
- sec-watchSkill
The file
Files
sec-audit:用 AI 做安全审计
一句话:两个模型各审一遍,第三个专门找它们的错;只读,不碰生产;每天审昨天改了什么。
规矩(先说清楚)
- 只读:读代码、读配置、在服务器上看端口和配置可以;不对生产环境做任何攻击测试,复现在本地或测试环境。
- 报告和消息里不写任何密钥、Key、密码、完整卡号、客户个人信息。
- 不登录第三方账号(支付网关后台、云控制台),需要看的让人去看。
- 修复要人看过再改,审计本身不改代码。
1. 分模块:先审“能变出钱或额度的地方”
按风险分好,每个模块一次审完:
| 模块 | 看什么 |
| 收款和付款通知 | 验签、回查、金额 / 币种 / 商户对比、幂等入账、兜底查单(sec-payment §1–3) |
| 余额、额度、扣费 | 并发扣费、负余额、预扣和结算、子账号限额在每个入口都生效 |
| 免费额度、试用、新人礼、兑换码、优惠码、分佣 | 一人多领、并发超领、可猜的码、自己推荐自己、退款不作废佣金 |
| 账号和登录 | 撞库、验证码爆破、找回密码、一次性链接、会话、两步验证能不能跳过 |
| 后台和员工权限 | 权限是不是在服务器端按“页面 + 动作”检查、谁能改余额 / 价格 / 管理员、员工能不能接管客户 |
| 越权 | 每个带 id 的接口是不是按当前用户过滤(订单、Key、文件、对话、账单) |
| 云账号 | 主账号 MFA、有没有 AccessKey、Key 能不能下发命令 / 传文件、操作审计告警(sec-server §1) |
| 入口配置 | nginx / 网关 / 反向代理、Docker 端口、防火墙、密钥有没有进仓库(sec-server、sec-edge、sec-secrets) |
| 通用 | SQL 注入、XSS、SSRF(让服务器去访问用户给的地址)、文件上传、开放跳转、CSRF |
2. 两个模型独立审,第三个反方复核
- 起两个子代理(Claude Code 里用 Agent 工具,选两个不同的模型),给同一批文件、同一份“看什么”清单,互相不看对方的结果。
- 两边的发现合并,交给另一个代理做反方复核:逐条找反证(“这条为什么不成立?”),并审修复方案会不会弄坏正常流程。
- 只留复核后确认的(标“确认 / 可能 / 误报”)。实际经验:单个模型报的东西里有一部分是误报;两个模型都报 + 复核确认的,基本都是真的。
给审计代理的提示要点:
- 告诉它业务上什么东西值钱(余额、额度、兑换码、佣金、卡号),让它从“我是攻击者,想白拿这些”出发。
- 要它给出具体的利用步骤(哪个接口、什么参数、并发几次),给不出步骤的降级为“可能”。
- 要它写“文件:行”,方便人去核对。
3. 每天自动审
用定时任务(Claude Code 的定时任务 / cron 调 claude -p)每天跑一次:
- 在一个专用的工作目录里拉最新的主分支(只给审计用,不在你干活的目录里跑)。
- 审昨天的改动:
git log --since="36 hours ago" --name-only列出改过的代码和配置文件,全部审一遍。 - 轮换抽查一个高风险模块:按日期轮(比如
date +%j除以模块数取余数,对应上面表里的模块),不管最近有没有改都审。 - 报告写进仓库
docs/security/YYYY-MM-DD-audit.md并提交。没有发现也写一份短的,说明看了哪些文件。 - 有高危才推群:一句话说是什么、影响多大、报告在哪。没有高危不推,免得大家习惯性忽略。
4. 报告格式
# 2026-01-01 安全审计
范围:昨天的改动(N 个文件)+ 轮换模块「免费额度」。两个模型独立审,第三个反方复核。
| # | 严重 | 问题 | 位置 | 怎么利用 | 影响 | 处理 |
|---|---|---|---|---|---|---|
| 1 | 高 | 新人礼可以反复领 | app/gift.php:42 | 换 IPv6 地址 + Gmail 加点注册 | 每个号 X 元,无上限 | 已修:… |
## 要人决定的
- …(修了会影响正常用户 / 运营流程的,写清楚两种选择的代价)
## 反方复核
- #3 是误报:…严重程度:高 = 能直接拿到钱 / 额度 / 别人的数据;中 = 要满足条件或损失有上限;低 = 加固项。
5. 我们真实审出来过的问题(照着查)
都是在正常运行的网站上审出来的,已经修了。你的代码里大概率也有几条:
免费额度和奖励
- 新人礼能反复领:同一网络按完整 IP 判断,IPv6 换个地址就算新网络;Gmail 加点、加
+算新邮箱;先查后写有并发空档;没有每天总量上限。 - 试用次数能超:先检查再记录,不是原子的,并发请求能超出次数。
- 自己推荐自己:用小号下单,小号拿折扣、大号拿佣金。
- 退款 / 拒付之后,已发的佣金没有作废(只有“取消订单”才作废)。
钱和扣费
- 盗卡充值:新号卡类付款没有单笔 / 每日上限,拒付回来时额度已经花掉。
- 余额很少的账号并发发请求,能把余额扣成负数(扣费不是先预扣)。
- 转发给上游的参数和计费用的参数不是同一份:数量只在估价时截断,转出去的是原始值。
- 新加的扣费接口没检查子 Key 的额度上限,限额很小的子 Key 能花掉整个账户。
- 晚到的上游回调把已经结算的任务改回“进行中”,用户永远拿不到结果。
- 用来防并发的锁过期时间比操作本身短,慢的时候锁先过期,两个请求同时通过余额检查。
- 开了折扣码以后,对账用的是原价字段,打折的单按原价入账。
账号和权限
- 撞库时失败次数能被清零:任何人登录成功会清掉这个 IP 的全部失败记录,攻击者试几次密码、登一下自己的号、再试几次,永远不锁。
- 有“修改客户”权限的员工能接管任意客户账号(重置密码直接看到新密码、关掉客户的两步验证),然后花客户的余额。
- 同邮箱的旧账号会被接到一个还没验证邮箱的新账号名下。
- 一次性登录链接没有绑定发起的浏览器:攻击者能把受害者登录到攻击者的号上,受害者再付款就付进了攻击者的号。
- 某个后台操作的 POST 没查权限,任何管理员都能改。
- 删掉的 API Key 还能查余额和任务列表。
入口和日志
- 反向代理把原始路径转给内部服务,
..、%2e、%2f、反斜杠能拼出内部管理接口的路径。修法:路径里有这些一律 404。 - CSRF 校验失败后的跳转地址能被拼成
//别的网站(开放跳转)。 - 有的 API 把 Key 放在网址里(
?key=),明文进了 nginx 日志、网关日志、外部日志平台,后台“看请求内容”也能看到。 - 推到外部日志平台的打码规则漏了网址的第一个参数(
?t=登录交接 token 原样推出去了)。 - 服务器上有两把没人认识的 SSH 公钥(云控制台绑定的,重装会写回)。
- Docker 发布的端口绕过了 ufw,以为“只放行内网”的规则其实不起作用。
- 自动安全更新装了,但安全更新源被镜像注释掉了,一个补丁都没装。
没发现问题的地方也写下来——“付款通知先验签再回查、金额对不上不入账、每张单只入账一次”这些已经做对的,写进报告,下次改动时有人知道不能把它们改坏。
6. 运行时兜底
审计有漏网的,所以还要有运行时对账告警(sec-payment §8):余额 / 额度只能因为有记录的充值变多,多出来的找不到来源就报。朋友被刷的那种情况,有这个告警一个小时内就能发现。
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

