如何使用基于整数的手动SQL注入技术

今天,我将教大家如何使用基于整型的手动SQL注入技术来对MySQL数据库进行渗透测试。提醒一下,这是一篇写给newbee的文章。话不多说,我们直奔主题!

SQL注入线上实验室

1. 初学者可以使用这个网站来练习自己的SQL注入技术。 2. 访问线上实验室,请跳转【http://testphp.vulnweb.com/artists.php?artist=1】。

第一步:对查询语句动手

首先,访问网站地址:

testphp.vulnweb.com/artists.php?artist=1

接下来,我们在URL地址结尾添加一个单引号并查看网站是否存在SQL注入漏洞:

testphp.vulnweb.com/artists.php?artist=1′

此时,我们通过修改查询语句成功接收到了数据库返回的错误消息。但是,我们却没有收到关于输入数据(我们所添加的那个单引号)的错误提示,这也就说明我们的输入已经成功了。现在我们就可以知道,我们所输入的这个字符串(单引号)是不会让数据库返回相关错误信息的,接下来我们尝试修复一下这个问题,去掉单引号:

上图说明,我们在查询语句中采用了基于整型的方法之后就不会在触发错误了,这也就是我们所说的基于整型的SQL注入方法。

第二步:查询数据库条目

确认了漏洞存在之后,我们就可以尝试弄清楚这个数据库表中到底有多少列了,这里我们可以使用order by命令实现。我们可以不断尝试输入任意值的数字来测试数据库中有多少列。

上图中,我输入了数字4,我想要查询4列,但是得到了一条错误提示。所以我得尝试其他数字,试试3呢?

大家可以看到,这里没有返回SQL错误。是的,就是3列!

第三步:查询后台数据库表和表名

接下来,我们需要获取表路径,这里使用union all select:

上图表明,union all select语句返回了表.2和3的表路径:

上图显示了database() & version()命令的执行结果,并拿到了数据库名和版本信息。

大家可以看到,数据库名为acuart,版本信息为5.1.73-0ubuntu0.10.04.1。

第四步:导出数据库表

Groupconcat()函数可以从一个group中获取与非空值级联的字符串,这里我们可以使用这个函数来枚举出数据库中所有的表。除此之外,我们还可以使用InformationSchema来查看关于数据库中对象的元数据:

上图显示的是目标数据库中导出的所有表信息,即:carts,categ,featured,guestbook,pictures,products,users。

第五步:导出数据库表中所有列的数据

接下来,我们导出目标数据库中user表的所有数据:

从上图的结果中可以看到,这个数据库表中包含的列条目有:uname,pass,cc,address,email,name,phone,cart。

第六步:导出所有的用户名和密码

接下来,我们就可以导出目标数据库中所有的用户名及密码了:

这样一来,我们就成功拿到了用户名为test且密码为test的用户信息了。

后话

希望大家可以不断练习,并尝试导出数据库表中包含以下列名的数据:address, email, name, phone, cart。

最后,祝大家Happy Hacking!

*参考来源:gbhackers,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2018-10-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏地方网络工作室的专栏

Python3 初学实践案例(8)使用 sqlite3 数据库存储生成的密码,prettytable 的使用

Python3 初学实践案例(8)使用 sqlite3 数据库存储生成的密码,prettytable 的使用 在前面我用 python 脚本实现的 cli 版本...

2825
来自专栏运维技术迷

MySQL数据库(七):数据导出与导入

一、数据导入 1.什么是导入:把系统文件的内容保存到数据库服务器的表里 2.导入数据时的注意事项? -表中字段的个数要和文件列中的个数相等 ...

4075
来自专栏北京马哥教育

MySQL开源热备工具XtraBackup的原理与程序说明

XtraBackup是Percona发布的MySQL开源热备工具,可以在尽量不影响线上读写的情况下进行快速全备、增备。支持InnoDB, XtraDB, 和My...

3455
来自专栏芋道源码1024

数据库中间件 MyCAT 源码分析 —— 调试环境搭建

本文主要基于 MyCAT 1.6.5 正式版 1. 依赖工具 2. 源码拉取 3. 数据库配置 4. MyCat 配置 5. MyCAT 启动 6. MyCAT...

4157
来自专栏lonelydawn的前端猿区

oracle数据库安全,事务机制,触发器和存储过程

一、数据库安全机制 如果任何用户都可以随便查看和操作你的数据,那么数据的安全性将不复存在,可以通过限制用户操作权限防止数据被窃取、读脏和篡改。 1、创建用户 u...

27310
来自专栏知识分享

2-LPC1778之GPIO

其实这篇文章主要是介绍自己为其写的GPIO库,自己借鉴了原子写的STM32,野火写的K60,还有LPC官方库,然后按照自己平时用的,然后写了一个..其实写库的主...

3325
来自专栏蓝天

Mysql 大数据量导入程序

网络上转载许多都有错误,请注意代码的规范和正确性。 经测试以下代码是正确无错的,转载请保留版权,尊重程序作者!

1432
来自专栏DT乱“码”

linux下操作 mysql的基本命令

1, 创建mysqld数据库的管理用户: 要把root用户设置为管理员,我们应该运行下面的命令;     [root@linuxsir01 root]# mys...

3056
来自专栏大数据和云计算技术

MongoDB Compass--MongoDB DBA必备的管理工具

MongoDB Compass是MongoDB官网提供的一个集创建数据库、管理集合和文档、运行临时查询、评估和优化查询、性能图表、构建地理查询等功能为一体的...

5185
来自专栏吴伟祥

分布式锁的几种实现方式~ 转

目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一...

3791

扫码关注云+社区

领取腾讯云代金券