渗透思路:输入框 / 搜索框

遇到输入框/搜索框怎么测:SQL注入、XSS、命令注入、SSTI、路径穿越、参数fuzz等思路清单。

写在前面:合法学习边界

本文思路只用于授权测试。对真实系统注入、执行命令可能触犯法律。

一、输入框为什么重要

输入框是攻击面最密集的地方:用户输入进入数据库、命令、模板、文件路径等不同上下文,都可能被利用。看到输入框,按“输入去哪了”来判断测什么。

二、先判断“输入去哪了”

1
2
3
4
5
6
7
进数据库查询 → SQL 注入
回显到页面 → XSS
拼进系统命令 → 命令注入
进模板渲染 → SSTI(模板注入)
进文件路径 → 路径穿越/文件包含
进 XML 解析 → XXE
进反序列化 → 反序列化

三、思路清单

1. SQL 注入

1
2
3
4
' / " / 单引号报错
' or 1=1--、' AND 1=1
时间盲注 SLEEP(5)
参数化 → 报错/布尔/时间区分

2. XSS

1
2
3
<script>alert(1)</script>
<img src=x onerror=alert(1)>
看回显位置(HTML/属性/JS)决定编码

3. 命令注入

1
2
3
; id、| whoami、&& id、`id`
$(whoami)
多出现在 ping、搜索、导出等功能

4. 模板注入(SSTI)

1
2
{{7*7}}、${7*7}、#{7*7}
识别模板引擎(Jinja2/Twig/FreeMarker…)

5. 路径穿越 / 文件包含

1
2
3
../../../../etc/passwd
php://filter 读源码
参数名如 file/path/page/download

6. 参数 fuzz

1
2
Burp Intruder / ffuf 对参数做 fuzz
测类型、长度、枚举值、越权

四、优先级

1
2
3
4
先看输入走向(决定测哪类漏洞)
SQL 注入 / 命令注入 / SSTI 优先(危害大)
XSS 看回显位置
路径穿越/文件包含看参数名

五、小结

输入框测试的关键是“先判断输入去哪了,再选对应漏洞打”。同样一个输入框,后端是拼 SQL 还是拼命令,决定了它是 SQL 注入还是命令注入。抓包看后端处理,比盲目试 payload 高效得多。