SQL注入基础

本文介绍了SQL注入的基础知识,包括理解web框架与SQL运行流程,深入解析SQL注入的原因、核心原理和漏洞过程。通过Sqli-labs的学习,展示了SQL注入的各种类型如报错注入、盲注等,并详细阐述了MySQL手工注入的方法,强调了information_schema库在注入中的作用。同时,文章还涵盖了寻找SQL注入点的技巧,以及白盒测试方法——代码审计。
摘要由CSDN通过智能技术生成

理解web框架构造:

早期的框架:

在这里插入图片描述

webapp网站包含着容器中,容器又在操作系统OS之上,操作系统之中有安装了数据库软件。这样web网站就能通过对数据库的操作来实现功能

现在的web框架:

在这里插入图片描述

许多web应用来操作数据库,实现对数据库的操作,完成网站的功能

容器和web应用中的内容:

在这里插入图片描述

容器相当于中间线,web语言和web框架组成web应用,通过访问来和数据库进行交互。从而实现web应用到数据库的流程

SQL注入

理解SQL注入:

SQL运行中间的流程

在这里插入图片描述

Sqli-labs介绍:

https://github.com/Audi-1/sqli-labs

  • 报错注入
  • 盲注
  • Update注入
  • Insert注入
  • Header注入
  • 二阶注入
  • 绕过WAF

Sqli-labs安装

1、安装php + MySql + Apache环境,可以下载使用WAMP集成工具,在Windows 上安装,建议安装到虚拟机;
a.下载WAMP,安装;
b.下载Sqli-labs,配置运行。
2、安装Docker版本,安装简单,使用方便;
a.'下载docker;
b.下载Sqli-labs,运行。

安装完成后的显示

在这里插入图片描述

在这里插入图片描述

SQL注入背景

​ SQL全称是“结构化查询语言( StructuredQueryLanguage)”, 最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来, SQL语言得到了广泛的应用。
​ 结构化查询语言SQL是一种介于关系代数与关系演算之间的语言,其功能包括查询、操纵、定义和控制四个方面,是一个通用的功能极强的关系数据库标准语言。在SQL语言中不需要告诉SQL如何访问数据库,只要告诉SQL需要数据库做什么。

SQL注入产生原因

在这里插入图片描述

SQL注入核心原理

在这里插入图片描述

SQL注入漏洞过程

在这里插入图片描述

SQL注入实际场景

在这里插入图片描述

MySql常用函数

1.聚合函数

COUNT(col) 统计查询结果的行数

MIN(col) 查询指定列的最小值

MAX(col) 查询指定列的最大值

SUM(col) 求和,返回指定列的总和

AVG(col) 求平均值,返回指定列数据的平均值

2.数值型函数

ABS(x) 返回x的绝对值

BIN(x) 返回x的二进制

CEILING(x) 返回大于x的最小整数值

EXP(x) 返回值e(自然对数的底)的x次方

FLOOR(x) 返回小于x的最大整数值

GREATEST(x1,x2,…,xn) 返回集合中最大的值

LEAST(x1,x2,…,xn) 返回集合中最小的值

LN(x) 返回x的自然对数

LOG(x,y) 返回x的以y为底的对数

MOD(x,y) 返回x/y的模(余数)

PI() 返回pi的值(圆周率)

RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND()随机数生成器生成一个指定的值

ROUND(x,y) 返回参数x的四舍五入的有y位小数的值

TRUNCATE(x,y) 返回数字x截短为y位小数的结果

寻找SQL注入点

目标搜集

在这里插入图片描述

注入识别

在这里插入图片描述

高级识别

在这里插入图片描述

白盒测试方法:代码审计

搜索关键代码和函数

梳理业务流程

举例:

强网杯:“python is the best language”

SQL注入流程图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

MySQL手工注入方法

MySQL数据库结构

在这里插入图片描述

SQL层详细介绍
SQL层
解析器查询执行
授权查询告诉缓存
优化器查询日志记录
SQL层功能

在这里插入图片描述
在这里插入图片描述

MySQL手工注入方法
核心原理

Mysql内置的information_schema库,它功能强大,是我们进行Mysql注入的基石!

通过information_schema我们可以窥透整个MySQL的运行情况,也可以查看到数据库中的所有数据信息。

查询数据库核心语法

在这里插入图片描述

值得注意的地方

1、所有类型的Sql注入,都是基于查库、表、列语句

2、如果数据太多,导致无法返回查询结果:

​ 查询的场景:可利用limit限定返回的数量及位置,依次查询

​ 回显数据的场景:concat链接多个数据成为一条返回结果

有数据信息。

查询数据库核心语法

[外链图片转存中…(img-OLRUE7QL-1584863382472)]

值得注意的地方

1、所有类型的Sql注入,都是基于查库、表、列语句

2、如果数据太多,导致无法返回查询结果:

​ 查询的场景:可利用limit限定返回的数量及位置,依次查询

​ 回显数据的场景:concat链接多个数据成为一条返回结果

3、在一些场景,想要快速获取数据,需借助工具,如:Burp Suite

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值