欢迎光临散文网 会员登陆 & 注册

千锋教育网络安全零基础视频教程-黑客攻防/Web安全/渗透测试/代码审计/信息安

2023-07-12 22:24 作者:矩了个形  | 我要投稿

SQL注入漏洞基础

前言

SQL:结构化查询语言

关系式数据库管理系统:有着明显的层次结构。流行的软件如Mysql,Mssql,Access,Orcale等。

为了方便理解以Excel做类比,单张表类比为一个数据库,都是二维结构。表头类比称为字段名,内容类比称为字段内容。

SQL注入:常见的Web安全漏洞,攻击者利用这个漏洞,可范文或修改数据,或者利用潜在的数据库漏洞进行攻击。

漏洞原理

针对SQL注入的攻击行为可描述为通过用户可控参数中注入SQL语法,破坏原有SQL结构达到编写程序时意料之外结果的攻击行为。

成因:

  1. 程序编写者在处理程序和数据库交互时,使用字符串拼接的方式构造SOL语句。
  2. 未对用户可控参数进行足够的过滤便将参数内容拼接进入到SQL语句中。

Web应用在获取用户数据的地方,只要带入数据库查询,都有存在SQL注入的可能,这些地方通常包括数据:

@get @Post @HTTP @Cookie

漏洞危害:

攻击者利用SQL注入漏洞,可以获取数据库中的多种信息 (例如:管理员后台密码),从而脱取数据库中内容(脱库)。在特别情况下还可以修改数据库内容或者插入内容到数据库,如果数据库权限分配存在问题,或者数据库本身存在缺陷,那么攻击者可以通过SQL注入漏洞直接获取webshell或者服务器系统权限。

分类:

按数据类型分类:

  • 数字型注入:注入点的数据拼接到SQL语句中是以数字型出现的,即数据两边没有被单引号、双引号与括号。
  • 字符型注入:注入点的数据拼接到SQL语句中是以字符型出现的,即数据两边含有单引号、双引号与括号。

按注入手法分类:

  • 联合查询:UNION query SQL injection (可联合查询注入)
  • 报错注入:Error-based SQL injection (报错型注入)
  • 布尔盲注:Boolean-based blind SQL injection (布尔型注入)
  • 延时注入:Time-based blind SQL injection (基于时间延迟注入
  • 堆叠查询:Stacked queries SQL injection (可多语句查询注入)

注释:

-- (杠杠空格)

#

/* ...... */

/!....../

mysql 元数据库数据库

information_schema

  • Tables:所有的表名
  • table_name:表名
  • table_schema:所在数据库
  • columns:所有字段名
  • column_name:所有字段所在列名
  • table_name:所有字段所在表名
  • tabel_schema:所有字段所在数据库名

MYSQL 常用函数与参数

=/>/>=/<=/<>:比较运算符

and/or:逻辑运算符

version():mysql数据库版本

database():当前数据库名

user():用户名

current_user():当前用户名

system_user():系统用户名

@@adatadir:数据库路径

@@versoin_compile_os:操作系统版本

length():返回字符串的长度

substring():截取字符串

substr():从左侧开始取指定字符个数的字符串

mid():

1.截取的字符串

2.截取起始位,从1开始

3,截取长度

left():从左侧开始取指定字符个数的字符串

concat():没有分隔符的连接字符串

concat_ws():含有分割符的连接字符串

group_conat():连接一个组的字符串

ord():返回ASCII码

ascii():

hex():将字符串转换为十六进制

unhex():hex的反向操作

md5():返回MD5值

floor(x):返回不大于x的最大整数

round():返回参数X 接近的整数

rand():返回0-1 之间的随机浮点数

load_file():读取文件,并返回文件内容作为一个字符串

sleep():睡眠时间为指定的秒数

if(true,t,f):if判断

find_in_set():返回字符串在字符串列表中的位置

benchmark():指定语句执行的次数

name_const():返回表作为结果

千锋教育网络安全零基础视频教程-黑客攻防/Web安全/渗透测试/代码审计/信息安的评论 (共 条)

分享到微博请遵守国家法律