黑客擅长的sql注入攻击,你真的懂吗?( 二 )


黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
那么我们如何去利用sql注入获取我们想要的信息?
判定完是否存在sql语句后 , 我们这里整理出sql注入的步骤 , 1、判断是否存在sql注入 2、查询 怎么查询有几个列名?我们就要使用到order by 3、显示可注入的位置 4、显示数据库名、显示数据库的某个表名、显示数据库的某个表名的某个列名、最后显示数据 。
那我们前面判断了是否存在sql注入 , 那么我们就可以用order by 来猜列数
首先输入order by 4 他这里报错了 , 提示我们没有4个列数
黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
输入order by 3的话 , 他这里就返回了正常的页面 , 说明列数有3个
黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
知道了列数有3个之后 , 我们就需要显示字段位了 , 也就是可以注入的位置
那么我们执行了and 1=2 union select 1,2,3 就成功显示了字段位 , 为什么要前面加了and 1=2?这是因为要让前面报错 , 后面的union select查询语句才能被执行 , 最终显示出了注入攻击的位置
黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
显示出了2和3的位置 , 也就是说2和3是可注入和查询的位置 , 那么的话 , 我们这里要用到机个内置的函数 database()(显示出当前的数据库名)、user()(当前用户名) version()(mysql数据库版本信息)、@@datadir 读取数据库路径、@@basedirmysql安装路径、table_name显示表名、column_name显示列名
知道了上面的几个数据库函数后 , 我们前面讲到sql注入的步骤 , 第一步就是获取当前网站的数据库名 , 因为数据库有很多不同的数据库和名字 。也有很多不同的网站、
显示当前的数据库名
我们把2替换成了database()函数 , 知道了当前网站的数据库为security , 那么我们接下来是猜security的表名 。
黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
猜表名的话 , 我们就需要以下语句
information_schema是mysql自带的数据库 , 点号代表下一级的意思 , 就查出了一个表名
黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
如果要查当前网站的表名 , 我们就得加一个where table_schema='数据库名'
于是就查询出了当前的数据库的其中一个表名
黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
那么如果要列出所有的表名 , 我们这里要用到group_concat()函数 , 他这个函数代表所有的意思 , 列出了数据库中的所有表名 , 一共有四个
黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
那么问题来了 , 如果说我们要从中获取数据 , 我们应该从哪个表名开始?一方面是从users表名 , 因为user的中文意思是用户 , 那么他这里就有可能存用户的信息 , 第二个是admin , admin是后台的意思 , 那么的话 , 我们就可以先从这些表开始去弄列名
首先我们选取了users表名 , 我们要列出所有的列名的话 , 我们就需要改一下语句 , 把table改为column
可以看见我把table改为了column , 然后后面用table_name=’表名’指定我们要查询这个表名中的所有列 , 于是网站就显示出了id、username、password三个列名
黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
知道了列名之后 , 接着就是显示列名里面的数据 , 显示数据就不用那么麻烦了 , 只要知道列名和用from指定表名 , 那么页面就会显示出用户的邮箱和账号密码了
黑客擅长的sql注入攻击,你真的懂吗?

文章插图
 
好 , 那么这个就是一方面sql注入的基础 。
最后喜欢我文章的朋友请加圈子关注我们 , 私信关键词:加群 。
就会自动分享给你群号 。欢迎大家加入我们的安全大家庭 。提高大家的安全意识 , 提升大家的网络安全技能一直是我们的初衷和愿景 , 让我们共同成为守护信息世界的“SaFeMAN” 。


推荐阅读