SQL注入漏洞挖掘实战

约 3 分钟读完

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

← 渗透测试信息收集方法 报错注入 →