2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)

WEB漏洞-SQL注入之MYSQL注入

​ MYSQL 注入中首先要明确当前注入点权限,高权限注入时有更多的攻击手法,有的能直接进行 getshell 操作。其中也会遇到很多阻碍,相关防御方案也要明确,所谓知己知彼,百战不殆。不论作为攻击还是防御都需要了解其中的手法和原理,这样才是一个合格的安全工作者。

2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第1张图片
2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第2张图片

高权限注入及低权限注入

root在MYSQL数据库中属于最高权限,除root之外其他都简称为为普通用户权限

跨库是指由于权限高,root用户不止能够操作自己的数据库,还可以操作普通用户的数据库的行为

举例:

数据库A = 网站A = 数据库用户A 普通用户

数据库B = 网站B = 数据库用户B 普通用户

数据库C = 网站C = 数据库用户C root用户

这里A、B只能操作自己的数据库,而C就可以除了能够操作自己的数据库,还可以操作A、B的数据库(跨库)

在安全测试的过程中,我们可以运用这种思想,通过获取最高权限后对其他关联数据库进行操作

举例:在同个目录下存在网站A和网站B(即在同一个服务器),对网站A进行安全测试没有发现漏洞,网站B存在SQL注入漏洞,我们就可以获取到网站B的数据库内容,如果网站B用户为root用户,我们就间接拿到网站A对应的数据库内容。

跨库查询及应用思路(查询是在sqlilabs网站进行

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 tale_name=‘admin’ and table_schema=‘qqyw’(加上and后面的判断语句是为了保证查出来的字段名是对应表的,多个数据库命名为admin的表可能有多个)

获取指定 qqyw 下的 admin 数据

union select 1,u,p,4 from qqyw.admin(这是sqlilabs网站进行查询,所在的数据库并不是 qqyw,所以我们需要通过qqyw.admin来指定)

文件读写操作 (详细解释)

以下两个函数是mysql**特有的!!**这导致在注入时针对不同的数据库采取的攻击思路也不同。MySQL有内置读取的操作函数,我们可以调用这个函数作为注入的攻击点。

load_file():读取函数

2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第3张图片

into outfile 或 into dumpfile :导出函数

image-20210808215025441

2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第4张图片

涉及资源:https://blog.csdn.net/weixin_30292843/article/details/99381669

路径获取常见方法:

  • 报错显示:网站报错的时候会泄漏出自己的路径(扫描工具/手动探测)

    百度搜索:inurl:edu.cn warning (格式相同,改变inurl内容即可)也可以查到其他网站报错显示

  • 遗留文件:调试软件或者平台遗留下来的文件,经典的就是phpinfo.php(扫描工具可以扫到)

2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第5张图片

  • 漏洞报错:知道网站是用什么cms或者框架进行搭建的,用搜索引擎去找到对应的爆路径方式,比如phpcms 爆路径

  • 平台配置文件:结合前面的读取文件操作来读取搭建网站平台的配置文件,通过默认路径去尝试找到突破口,但如果更改了默认安装路径,也是很难进行(不怎么常用

  • 爆破:什么信息都没办法获取到,我们运用一些常见固定的可能安装位置生成字典,对目标网站进行爆破
    例如:
    windows:d:/www/root/xiaodi8/
    linux:/var/www/xiaodi8

找到路径后进行的操作,常见读取文件列表(演示)

2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第6张图片
2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第7张图片

常见写入文件

实战时X变为后门代码即可

2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第8张图片
2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第9张图片
2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第10张图片

问题:魔术引号开关 magic_quotes_gpc 点击查看详情

 

魔术引号

编码或宽字节绕过

以下为编码绕过:

2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第11张图片
2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第12张图片
两者都是相同的注入语句,这里我们将地址进行编码,成功绕过魔术引号的防护。

常见防护

第一种:进行if判断,进行过滤

2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第13张图片

第二种:将某个常用词代替成其他词,现实中一般都是变成空格或者直接丢弃数据包

2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第14张图片
2020小迪培训(第13天 WEB 漏洞--SQL注入之MYSQL注入)_第15张图片

低版本注入配合读取或暴力

  • mysql版本小于5.0
  • 方法:字典或读取

演示案例

普通用户及 root 用户操作权限

高权限注入跨库查询操作测试

高权限注入文件读写操作测试

魔术引号开启后相关操作测试

相关自定义代码过滤操作测试
 

最后感谢小迪师傅的视频!!

笔记来源视频:点击这里

你可能感兴趣的:(2020小迪培训,数据库,java,mysql)