• SQL注入之文件读写


    今天继续给大家介绍渗透测试相关知识,本文主要内容是SQL注入之文件读写。

    免责声明:
    本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
    再次强调:严禁对未授权设备进行渗透测试!

    一、SQL注入文件读写函数

    我们之所以可以利用SQL注入漏洞来进行文件的读写,是因为MySQL数据库中存在与文件读写相关的函数。
    load_file()函数可以进行文件的读取,into outfile和into dumpfile可以进行文件的写入,例如:
    执行SQL命令:

    select load_file("D:\\123.txt")
    
    • 1

    可以读取D:\123.txt文件中的内容。
    而执行命令:

    select "test" into outfile "D:\\234.txt"
    
    • 1

    可以向创建D:\234.txt文件(该命令执行的要求是该文件不存在),并写入test。
    相关命令执行结果如下所示:
    在这里插入图片描述

    二、SQL注入文件读写之secure_file_priv参数

    上述SQL语句的执行,必须依赖于数据库中secure_file_priv参数,该参数指定了数据库导入和导出的安全路径。
    该参数可以有三种类型,如果该参数为一个目录,那么我们执行上述命令的前提是文件处于该参数指定的目录下;如果该参数为NULL,那么上述命令都无法执行;如果该参数为空,那么上述命令都可以无限制执行。
    注意,该参数为NULL和空是两个完全不同的概念,该参数为空时如下所示:
    在这里插入图片描述
    该参数为NULL时,如下所示:
    在这里插入图片描述
    关于空值和NULL的区别,如果还存在疑惑,可以查阅:MySQL使用注意事项(一)

    三、SQL注入文件路径获取

    当我们利用SQL注入来读取文件内容时,需要知道目标文件的路径和文件名,那么我们如何获取文件路径和文件名呢,可以有以下方法:
    1、根据网页报错显示。
    有时,网站构建不严谨,我们就可以通过故意制造错误,引导网站显示处相关的路径。
    2、网站遗留文件。
    注入pipinfo之类的网站遗留文件会暴露网站的路径信息。
    3、漏洞报错。
    有些CMS或者其他中间件,由于其自身的漏洞,存在这爆路径的漏洞。
    4、平台配置文件。
    我们在运行网站服务的时候,都会有一个配置文件,如果我们能获取到该配置文件的信息,我们就可以获取到网站的目录。
    5、爆破。
    在上述方法都失效的情况下,只能通过暴力破解的方式,来猜解网站路径。

    四、SQL注入文件读写之魔术引导开关

    当我们使用SQL注入来进行文件读写时,还需要注意,在网站的PHP设置中是否使用了magic_quotes_gpc的魔术引导开关,该参数的设置会对单引号、双引号、反斜杠与空字符进行过滤。
    这样,当我们使用MySQL进行文件读写,要输入目标站点路径时,就会受到限制。针对这一点,我们可以使用16进制编码的方式来进行绕过。
    原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 相关阅读:
    DAO Java
    我用Python采集了班花的空间数据集,除了美照竟然再一次发现了她另外的秘密!
    故障分析 | 从 data_free 异常说起
    手机短信接收验证码的实现原理
    【Vue面试题五】说说你对Vue生命周期的理解?
    NOIP2022 (退役录)Goodbye OI!
    1.5 JAVA程序运行的机制
    【性能优化】(域名发散)为什么主页面和静态资源要置于不同的域名下?
    vue3源码分析——手写diff算法
    C# Winfrom Chart 图表控件 柱状图、折线图
  • 原文地址:https://blog.csdn.net/weixin_40228200/article/details/125362980