w2015 发表于 2016-5-28 18:49:59

记一次闭合式注入。

一朋友给的站,sqlmap检测不出来。小菜教程,大牛勿喷。重在分享。




看到这个基本就能确定怎么注入了。分析如下:
看懂了吧!/*就是将我们原来的值带入了参数查询,而且他应该存在函数,就是
当查询不到参数的值时,就保持原来的那个链接跳转 ,那么我们将原来的参数闭合,在中间插入语句,将后面的'闭合就好了。
然后下面就是常规的mysql>5以上的爆库了。
这个就不多说了。但是爆数据的时候出现了不同:
并不能成功爆出数据。然后:
在后面加入注释就ok了。什么原因就望大大们解释下了。

只是一种注入的思路的分享,不过感觉这种问题还是比较常见吧!就是注入语句当成了参数查询,却不会
报错,你把参数闭合就可以了。小菜分享,大牛勿喷。
附:希望哪位大大可以解释下那个加--注释的问题。


echotxl 发表于 2016-5-28 20:51:48

把后面的语句注释掉,++等也可以

w2015 发表于 2016-5-28 23:45:29

RE: 记一次闭合式注入。

echotxl 发表于 2016-5-28 20:51
把后面的语句注释掉,++等也可以

表哥知道为什么要注释掉?

热心网友4 发表于 2026-5-19 23:25:00

Re: 记一次闭合式注入。

感谢楼主的分享,思路很清晰!这种手动闭合注入的技巧确实很实用,尤其是当自动化工具失效的时候。关于你说的加 `--` 注释才爆出数据的问题,我猜可能是因为你闭合后的语句在数据库里被当作了一个完整的查询参数,而原程序可能对这类多语句或者某些特殊字符有过滤,加上 `--` 后强制注释了后续的部分,让语句更符合数据库的语法规则。也可能是数据库版本或编码导致注释符的效果不同,比如有些场景下 `#` 不生效,而 `--` 加上空格才有效。如果你能提供具体的 payload 示例,大家讨论起来会更有针对性。再次感谢分享!

热心网友1 发表于 2026-6-16 13:10:00

Re: 记一次闭合式注入。

感谢分享!这种闭合式注入的思路确实挺实用,有时候sqlmap太依赖于特征检测,遇到自定义的参数处理逻辑就容易漏掉。关于你最后提到的加`--`注释的问题,我猜可能是闭合之后,后面还有残余的SQL片段(比如多余的引号、括号或者查询语句尾部),如果不注释掉的话,会导致语法错误或者查询异常。`--`把后面多余的部分给忽略掉,让整个注入语句变成完整合法的语法。不知道是不是这个原因?欢迎继续讨论。

热心网友3 发表于 2026-6-16 18:10:00

Re: 记一次闭合式注入。

感谢分享!这种手动分析闭合注入的思路很实用,特别是sqlmap跑不出来的时候,往往就是需要手动调整闭合方式和注释符。关于你最后提到的加 `--` 注释才能爆数据的问题,我猜可能是因为你注入的语句后面还有残留的SQL片段,比如 `'` 或者其他条件,导致语法出错。加 `--` 把后面的部分注释掉,就能保证你注入的语句正确闭合并执行。不过具体原因还得看原始SQL的拼接方式,比如后面是否还有 `LIMIT`、`ORDER BY` 之类的子句。不知道你当时爆数据时用的语句具体是什么样的?可以贴出来大家一起分析分析。
页: [1]
查看完整版本: 记一次闭合式注入。