关于mysql:我的网安之路数据库SQL注入篇2

4次阅读

共计 1894 个字符,预计需要花费 5 分钟才能阅读完成。

SQL– 筹备常识 && union 联结注入

本文章仅为网络安全爱好者的学习笔记,咱们应该用这些常识晋升平安技能,独特保护网络空间的平安,请读者肯定要恪守法律法规,咱们有一套残缺的网络安全法和刑法。

1. 筹备常识

sql 注入罕用函数


这是笔者看 i 春秋相干课程时所做的总结笔记

sql 注入流程

结尾两张图片列出的是在 sql 注入中常常用的的一些函数,当前这些函数会呈现在很多数据库安全攻防场景中,尽管目前有许许多多的自动化注入工具,但咱们还是要理解最根本的手工注入,以便为了了解 SQL 注入的原理,从而对其进行平安剖析和加固

2. 注入流程

咱们能够把注入流程分为这几个阶段:

  • 1. 判断是否有注入(其实就是判断后盾的校验严格与否)第一因素
    1)可控参数的扭转是否能影响页面显示后果
    2)输出的 SQL 语句是否能报错 - 能通过数据库的报错,看到数据库的一些语句痕迹

例如:Select username, password from user where id = ?’

输出一个单引号’:如果是整型或者 id 被单引号包裹着的会报错,如果是双引号可能就不会

3)输出的 SQL 语句是否不报错 - 咱们的语句可能在后盾被胜利的拼接,闭合

个别的验证:

 1. 单引号’2.and 1 = 1
 3.and 1 = 2

证实以后的 id 是与数据库交互的,可能存在 sql 注入破绽(这个建设在以后环境没有防护软件;如果没有软件,那么就能够确定以后页面存在注入破绽)。

  • 2. 判断注入的类型
  • 3. 语句是否可能被歹意批改
  • 4. 咱们的邪恶语句能不能被胜利执行
  • 5. 获取咱们想要的数据
    数据库 –> 表 –> 字段 –> 值

3.union 联结注入

UNION 操作符用于合并两个或多个 SELECT 语句的后果集。

留神,UNION 外部的 SELECT 语句必须领有雷同数量的列。列也必须领有类似的数据类型。同时,每条 SELECT 语句中的列的程序必须雷同。

默认状况,UNION 操作符选取不同的值。如果容许反复的值,请应用 UNION ALL。

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

union 注入利用的前提:
页面上 必须要有显示位

上面我将把 union 注入详解介绍一下,还是和下面说的注入流程一样,只是加了一点细节

1:判断是注入类型。(因为单双引号或没有会影响到闭合)

判断是否用 ’ 做字符串引号
url:…/?id=1’and 1=1 –+
如果出错代表没有闭合胜利,阐明可能没有用 ’,还可能用了 ”
–+ 是正文符,也能够用 #和 %23

2:判断查问列数(如上所说要用 union,这相当于个性)

这个时候就要用到 order by 命令
order by 函数 是对 mysql 中查问的后果依照指定字段名排序,也能够指定字段的栏位来排序。
第一个查问字段为 1,第二个为 2,二分法来判断列数。

比方:url:.../?id=1'order by 3 --+ // 判断是否有 3 列
失常,那就有三列或三列以上
持续:url:.../?id=1'order by 4 --+ 判断是否有 4 列
如果报错:unknown column‘4’in‘order clause’阐明它输入的内容所在的数据库只有 3 列
3:判断查问显示位

这里了解会有点奇怪,对于初学者来说
比方 union select 1,2,3,4...from xxx
这里的数字其实就是占地位,后面判断了有几列,你这里就要占几个地位,并且这里的数字会被你要查问的字段代替,在回显中相应的地位就会变成你要的数据。比方你要是把 2 替换成 database(),查问胜利的话会在回显中显示你以后所在的数据库名称。这里的占位其实花了我很长时间来了解,过后也没怎么了解,当初终于了解了 555。

4:顺次获取数据库名,表名,字段名

就像我在第一篇外面说到的查问语句

url:.../?id=-1' union select 1,database(),3 --+
5:查问字段的数据
url:.../?id=-1' union select 1,(select group_concat(password) from security.users),3 --+

老手的话能够自行搭建靶场,这里举荐几个不错的入门靶场 DVWA,
sqli-labs,值得本人在虚拟机下面搭建,而后本人进行试验。这篇文章我会后续批改一下,把我做的试验截图放上去。

这是我的上一篇文章,感兴趣的能够康康~
我的网安之路 — 数据库 -SQL 注入篇(1):
https://segmentfault.com/a/1190000023725342

下一篇文章我将会整顿 sql 盲注相干常识~ 敬请期待!

如果文章有任何忽略或谬误,请您斧正!蟹蟹!

正文完
 0