专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

如何在不知道MySQL列名的情况下注入出数据_数据库

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 19:38:37       共计:3638 浏览
如何在不知道MySQL列名的情况下注入出数据?

SQL注入时,需要从MySQL的某个表中导出某些数据。一般来说,要想导出数据,你必须知道表名、列名,而这两个名字在某些情况下可能你并不知道。

例如,对于版本小于5.0的MySQL数据库,以及部分有WAF干扰的版本大于5.0的MySQL数据库,你就无法轻易获得表名、列名。

在这种情况下,也许你会放弃,仅仅注入出数据库名字,证明漏洞存在就结束。

无列名注入

我和我的队友@aboul3la一起,创建了一个数据库环境来模拟被攻击的目标,并通过大量的尝试最终找到了一个可行方法。 首先展示一下目标表users

我们可以看到,这次表的列名有“name”、“password”、“email”、“出birthday”和“added”。 下一步,我们输入一个注入中经常使用的探明列数的查询句式

很好,我们可以注意到,查询结果中的列的名称从name、password、email、birthdate替换为1、2、3、4、5、6,这主要是因为前面的查询语句select 1,2,3,4,5,6。 下一步我们就可以根据查询结果中的新的列名提取数据,而针对的数据表就是以上的查询结果。 使用查询语句select4from (select 1,2,3,4,5,6 union select * from users)redforce;你就可以将选出第4列数据,也就是电子邮件地址,

然后依次select 3,select 2等等。如果要将其带入实际的注入环境中,我们可以融合产生如下payload-1 union select 1,(select`4`from (select 1,2,3,4,5,6 union select * from users)a limit 1,1)-- -。你可以通过不停的修改列名1,2,3,4来提取数据。

总而言之 通过这种将未知原列名转换为其他值的方法,你就可以注入出所有的数据。 最终payload

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:mysql 合并表 查询,可以推荐几款好用的软件吗_数据库 | ·下一条:哪个数据可视化工具比较好_数据库

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有