Sql注入
攻击者通过输入恶意 SQL 语句,注入到应用程序的数据库查询中,篡改查询逻辑,从而实现未授权的数据访问、修改、删除,甚至控制服务器。
漏洞点
常规注入点
| 位置 |
为什么容易出注入 |
典型参数名例子 |
| 登录接口 |
常直接拼SQL,不转义 |
username, password, user, login |
| 搜索功能 |
常使用 LIKE 模糊查询,容易注入 |
q, keyword, search, wd |
| 排序功能 |
ORDER BY 直接拼接 |
order, sort, orderby, dir |
| 分页参数 |
limit offset 常直接拼接 |
page, offset, start, limit |
| ID类参数 |
最经典注入点 |
id, userid, cid, aid, pid |
| JSON接口 |
后端常用eval或不严格解析 |
data, json, payload |
| GraphQL接口 |
introspection + 参数注入 |
query, variables |
| 文件上传后回调参数 |
上传头像后返回 ?file=xx 或 ?id=xx |
file, avatar, img |
| 忘记密码/重置接口 |
常通过token+email查用户 |
email, token, user |
| API接口(/api/v1/...) |
开发常跳过WAF和过滤 |
id, uid, type, category |
特殊场景注入点
| 类型 |
查找方法 |
| 二阶注入(Stored SQLi) |
注册 → 修改昵称/签名 → 查看个人页,看是否回显执行 |
| Cookie注入 |
把Cookie所有值都拿来测试,尤其是JWT解码后的payload |
| User-Agent / Referer |
修改UA头或Referer,观察是否入库后在日志/统计页执行 |
| X-Forwarded-For |
伪造XFF头,部分后台会记录到数据库并回显 |
| 验证码接口回参 |
有些验证码接口返回 ?captcha=xxx&status=1,会带用户参数 |
| WebSocket参数 |
用Burp抓WS包,手动重放测试参数 |
布尔盲注payload
工具
Sqlmap