花里胡哨|又是个DM达梦数据库SQL注入?"

admin 2026-10-22 10:13:17 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

花里胡哨 | 又是个DM达梦数据库SQL注入?

原创

犀利猪
犀利猪

犀利猪安全

2024年6月3日 17:52
湖南

在小说阅读器读本章

去阅读

0x01 发现注入

单引号插插插,哎,这不是有注入呢嘛:

然后在我一顿操作之下,我本来以为是if函数没权限用:

后来我发现是达梦不支持这么用,不管是用if还是case when,里面都不支持插入sleep,来看看达梦的数据库执行结果:

然而这个接口又没有数据,不能用延时怎么判断呢?

没关系,我们用别的方式。关于达梦数据库的简单介绍,可以看我之前发布的这篇文章:

首当其冲 | 一次DM达梦数据库注入记录

0x02 干就完辣

根据前面的步骤,我们构造别的语句来执行。这边的手法就是,利用除法来报错。当内容正确时,1无法除以0,此时就会整除失败。那么,这个值就是正确的值。

好的,接下来再把它更换成SQL语句,他就是这样的:

cur_database  #达梦数据库获取库名的函数
1/(length(cur_database)-判断内容)

这里打个比方,根据如上语句,假如length函数获取到库名长度是6位,而后面的判断内容的值也是6,此时先执行减法 6-6=0,而后执行除法 1/0,此时会爆出 除0错误,那么这个值就是正确的值:

接着我们构造语句:

'||(1/(length(cur_database)-6))||'

得出库名长度为6,接下来获取库名。由于是除法,判断的值它就只能是数字,所以需要用到ascii函数来转换:

'||1/(ascii(substr(cur_database,2,1))-65)||'

0x03 别的手法

除了上述的除法报错的方式,在这里也可以使用exp函数来让内容强制溢出报错,使其达到盲注的效果:

select exp(if(1=2,710,1))

(

END

)

!扫码添加哦!

*联系进群即可,群内可交流技术*

免责声明

文章内容仅限授权测试或学习使用

请勿进行非法的测试或攻击

利用本账号所发文章
进行直接或间接的非法行为
均由操作者本人负全责
犀利猪安全及文章对应作者

不为此承担任何责任

文章来自互联网或原创

如有侵权可联系我方进行删除

并诚挚的跟您说声抱歉


花里胡哨|又是个DM达梦数据库SQL注入?" 网络安全文章

花里胡哨|又是个DM达梦数据库SQL注入?"

本文记录了达梦数据库SQL注入漏洞的实战分析过程。作者通过单引号测试发现注入点,发现达梦数据库不支持if/casewhen结合sleep的延时注入,转而采用除法报错和exp函数溢出两种盲注手法。详细演示了利用cur\\_database函数获取库名长度和ASCII值的具体Payload构造方法,提供了可操作的注入技巧。
首当其冲|一次DM达梦数据库注入记录" 网络安全文章

首当其冲|一次DM达梦数据库注入记录"

本文记录了一次针对DM达梦数据库的SQL注入实战过程。作者通过报错信息识别数据库类型,发现URL编码可绕过符号过滤,利用if语句构造盲注payload成功获取库名,但在获取表名时遇到空格过滤和语法报错问题,最终使用%09、%0a替代空格并尝试视图方式未完全解决。文章包含具体的注入语句和绕过技巧。
2026攻防演练蓝队招募计划正式启动" 网络安全文章

2026攻防演练蓝队招募计划正式启动"

2026年攻防演练蓝队招募计划启动,要求具备研判、溯源、应急等技术能力,身体健康且无犯罪记录的成年人。项目提供预付、合同、保险及有竞争力报酬,结款可靠。优先考虑AI安全防护、技战法编写、带队能力和持证人员。支持团队合作推荐,可通过指定链接报名并加入交流群获取资源。
评论:0   参与:  0