HTTP 自定义请求头中的 SQL 注入

好久没写文章了,今天水一篇短文,给大家分享个去年挖到的骚操作——HTTP 自定义请求头里的 SQL 注入漏洞。

当时我正在对某个SRC进行 API 渗透测试,暂且叫它 redacted.com 吧。成功登录后,我发现请求里多了个 HTTP 头字段——User 字段,值就是登录应用程序时用的用户名。

POST /abcd/abcd
Authorization: token
Host: redacted.com
User: user.abc
Postman-Token: token
...

{body request}

接着,我寻思着改改用户名测测有没有 IDOR(不安全的直接对象引用)漏洞,结果服务器直接甩了个 500 内部错误过来,还提示说这 API 访问不了,看来服务端对这个参数做了校验。

20260220170617375-image

修改 User 值时返回的错误信息

既然服务端对这个参数做了校验,那说不准也能整出个 SQL 注入来。于是我往请求里甩了个基础的 SQL 注入 payload ‘ OR 1=1- –,没想到服务器居然直接放行,还返回了有效数据。这波操作有点东西啊

20260220170704869-image

请求被服务器成功接收

行吧,SQL 注入实锤了,接下来的活儿直接扔给 sqlmap 就完事了。但这个漏洞还有个更有意思的利用点:就算不带授权令牌,照样能正常往服务器发请求。

20260220170725646-image

未携带 Authorization 令牌的情况下成功请求,666!

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容