前言:
MYSQL注入中首先要明确当前注入点权限,高权限注入时有更多的攻击手法,有的能直接进行geshell操作。其中也会遇到很多阻碍,相关的防御反感也要明确。
高权限注入及低权限注入:
- 跨库查询及应用思路:
information_schema 表特性,记录苦命,表名,列名对应表
- 获取所有数据库名:
http://127.0.0.1:8080/sqlilabs/Less-2/?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schemata
- 获取指定qqyw数据库下的表名信息:
union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='qqyw'
- 获取指定qqyw下的表名admin下的列名信息:
union select 1,group_concat(column_name),3 from information_schema.columns where table_name='admin' and table_schema='qqyw'
文件读写操作
读取函数:load_file()
导出函数:into outfine 或into dumpfile
路径获取常见方法:
报错显示,遗留文件,漏洞报错,平太配置文件,爆破等。
常见读取文件列表:
写入文件:union select 1,’x’,3 into outfile ‘D://1.txt’
常见写入文件问题:魔术引号开关 在配置的文件中:magic_quotes_gpc参数,相同的函数还有addslashs函数。当 magic_quotes 为 on,所有的 ’ (单引号)、” (双引号)、\(反斜杠)和 NULL被一个反斜杠自动转义。magic_quotes_gpc的设定值将会影响通过GET、POST 和 COOKIE获得的数据。
类似的函数还有:is_array,is_int,str_replace。一般判断类型的是难以绕过的
魔术引号及常见防护:在魔术引号打开后,可以采用编码的方式进行绕过。
普通用户及root用户操作权限
root在MYSQL数据库中属于最高权限,除root之外其他都简称为普通用户权限。
高权限注入跨库查询操作
通过select * from schemata 进行数据库名查询,再去选择进行查询获取指明数据库里的数据。
高权限注入文件读写操作测试
会用到MySQL数据库里两个内置函数,这两个函数是MySQL数据库特有的,在其他数据库是没有的或者在其他数据库中写法不同,所以这是为什么说注入点分数据库的原因,因为每个数据库内置的安全机制和它的功能不同,这才导致在注入的时候针对不用的数据库采取的攻击思路也不同。MySQL有内置读取的操作函数,我们可以调用这个函数作为注入的攻击。
路径获取常见方法:
报错显示:一般网站出现错误的时候它会泄露出路径
遗留文件:站长为了调试信息的时候遗留的文件而泄露的路径。用扫描工具可以扫出漏洞报错:知道对方是用什么程序搭建再去网上去搜索漏洞信息:phpcms 爆路径
平台配置文件:通过读取文件来读取搭建网站平台的配置文件。缺点:路径不是默认的,一旦更改很难找到路径。 标签:文件,函数,数据库,MYSQL,注入,SQL,权限,schema From: https://www.cnblogs.com/cx330ki/p/17020182.html