警惕phpstudy等开发神器使用默认配置可能带来的危险
0x00 前言
其实这个点早在之前,我就已经想到了,当时也觉得没啥就记在了我的印象笔记里。
而今天重新把这个点拿出来讲,主要是因为今天早上在温习nmap的时候,一不小心利用这个点,拿下了一位同事的电脑。
或许这个方法已经一部分知道并且用烂了,但仍然会有另一部人不知道,但或许知道了又因为人天生的惰性而懒得去整改,致使自己的服务器暴露在了许多不怀好意的人的面前。
在这个比特币风疯狂的时代,很多网站站长都利用起访客的电脑来挖矿了。更何况是这些暴露在公网的电脑?当然利用方法有很多,这个方法或许只是其中一个非常非常小的利用点。
但它依旧是黑产利用不可或缺的方法之一,因为人的欲望是无穷的,是不会放过任何一个可以满足自己欲望的方法。
这篇文章主要是想讲讲默认配置带来的危险,没什么技术含量,作为一个警惕信号。
0x01 phpstudy简介
什么是phpstudy?
phpstudy是提供给php开发者,学习者的一种开发套件,其包含了常见的php网站开发利器php+mysql+apache/nginx/iis ,支持windows,linux等多个平台。可以轻易的切换php版本,服务器,快速打开网站根目录,修改配置等。
其方便快捷的功能,受到了广大开发者的青睐。同类型的产品还有wamp server,MAMP等。
其安装十分简单,下载zip包打开直接解压到指定目录即可

主目录下,一些文件的作用大致如下

点击主程序,启动之后大概是这么一个界面

启动服务之后,在网站根目录(WWW)下存放我们的php代码即可正常使用了。
非常的简单,就算是计算机小白也能利用其快速搭建一个可用的服务器,搭建起属于自己的个人网站。
在安全圈中,也是许多安全人员的必备神器。
0x02 根目录下默认文件带来的危险
在phpstudy www目录下默认会有这么几个文件。(mysql 默认的用户名和密码是root/root,只允许本机访问)
这几个文件是方便开发者进行调试,管理所用的。理应在发布到外网的时候进行删除或者限制访问。

但总有一些网站管理员是忘记了或者是压根没有注意到这几个文件,就直接把从网上下下来的程序解压到根目录。
比如像下面的目录一样。

那么我们就可以通过搜索引擎,以title关键字phpstudy 探针轻松找到暴露在外网可能有问题的网站。

再通过phpinfo或者探针页面,获取到网站的绝对路径。再加上mysql用户和密码用的是默认配置root/root,那么我们就可以利用phpmyadmin 通过修改general logfile的路径直接导出webshell至网站,从而获取到网站的shell,造成了服务器沦陷的极大可能性。
比如这样(拿到shell)

你可能会说,这样的案例还是少数。但是量也不少啊。
通过fofa搜索到的服务器数目高达2w多台。

除去一些可能没法利用的,但数目也是十分可观的了。
0x03 phpstudy使用nginx服务器可能带来的解析漏洞
其实这个锅并不是phpstudy的,但又不好说应该是谁的问题。其实归根到底是为了支持path info模式,也就是cgi.fix_pathinfo这个配置项的问题,因为其默认是开启的(有问题)。
但是假如是新手,对于这个不太了解的,那么就有可能GG了。
比如自己写了个网站,用的是nginx解析,没有做好处理。那么就有可能存在nginx解析漏洞了。关于nginx解析漏洞,可以看这里(www.laruence.com/2010/05/20/1495.html)
比如这样子。

在后面加一个/1.php,再访问一下很明显返回不一样了。(留意其颜色,这一次的会深一点,那是因为被当做了php程序解析了。返回的是text/html类型)

我们修改一下robots.txt的内容为一句php代码

在访问一下,即可看到成功执行了php代码。

还有一点是phpstudy在启动之后其网站默认是任何人都可以访问的,自然局域网下也是可以的。(也就是我在前言里面说的,通过这个拿下同事的电脑)
0x04 关于防御
那么应该怎么办呢?很简单,把该删的删了(www目录下的几个文件与及phpmyadmin),该修改的默认密码(mysql 的密码)改了。
如果说你需要用phpmyadmin,不想删,那么就配置下apache或者nginx。(以apache为例,在httpd.conf配置文件中加上如下面的代码)
#phpmyadmin
<Directory "D:/phpStudy/WWW/phpMyAdmin"> #这里是你的phpmyadmin的绝对目录
order deny,allow
Deny from all
Allow from 127.0.0.1 #这里是你想要允许访问的IP
</Directory>
不要以为说你只是个人电脑使用就不用慌。
倘若某天你正在星巴克连着WiFi上着网,热情如火的用phpstudy部署着想要审计的cms时,突然电脑一黑,这个时候你可能就要想到,有可能是因为phpstudy使用了默认配置默认文件的原因了。
0x05 总结
这篇文章只是以phpstudy为例(可以拓展到其他软件)说说默认配置,debug环境上线产生的问题,并不是说phpstudy本身有什么问题,而是说使用默认配置可能带来的风险。
刀可以用来杀人,也可以用来自卫,但用户想怎么做,不是生产者所能决定的,也不应该把锅推给生产者。
警惕phpstudy等开发神器使用默认配置可能带来的危险的更多相关文章
- webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器
#webstorm+nodejs+JetBrains IDE Support+chrome打造前端开发神器 -- 工欲善其事 必先利其器 ##各工具介绍 `webstorm`是**JetBrains* ...
- PhoneGap与Jquery Mobile组合开发android应用的配置
PhoneGap与Jquery Mobile结合开发android应用的配置 由于工作需要,用到phonegap与jquery moblie搭配,开发android应用程序. 这些技术自己之前也都没接 ...
- 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...
- 第1章 开发环境安装和配置(二)安装JDK、SDK、NDK
原文 第1章 开发环境安装和配置(二)安装JDK.SDK.NDK 无论是用C#和VS2015开发Androd App还是用Java和Eclipse开发Androd App,都需要先安装JDK和Andr ...
- Nginx+Python+uwsgi+Django的web开发环境安装及配置
Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...
- Elasticsearch 默认配置 IK 及 Java AnalyzeRequestBuilder 使用
摘要: 原创出处 www.bysocket.com 「泥瓦匠BYSocket 」欢迎转载,保留摘要,谢谢! 『 春夏秋冬失去了你,我怎么过一年四季- 民谣歌词 』 本文提纲 一.什么是 Ela ...
- Struts2第三篇【Action开发方式、通配符、Struts常量、跳转全局视图、action节点默认配置】
前言 上篇Struts博文已经讲解了Struts的开发步骤以及执行流程了-..对Struts的配置文件有了了解-..本博文继续讲解Struts在配置的时候一些值得要学习的细节- Action开发的三种 ...
- [js插件开发教程]一步步开发一个可以定制配置的隔行变色小插件
隔行变色功能,不用js,直接用css伪类就可以做,这个实例可以作为js插件开发很好的入门级实例.本文实现的隔行变色包括以下功能: 1,支持2种常用结构共存( div元素 和 表格类型 ) 2,一个页面 ...
- Cocos2d-x 3.2Lua演示样例UserDefaultTest(用户默认配置)
Cocos2d-x 3.2演示样例UserDefaultTest(用户默认配置) 本篇博客介绍Cocos2d-x 3.2演示样例中的UserDefaulstTest,我们在开发中可能须要用到一些默认配 ...
随机推荐
- C++map类型 之 简单介绍
一:map的前世今生 (1)从关联容器与顺序容器说起.关联容器通过键(key)存储和读取元素.而顺序容器则通过元素在容器中的位置顺序存储和訪问元素(vector,queue,stack,list等). ...
- 一段文字中的几个keyword显示高亮
将一段文字中的几个keyword显示高亮 演示样例:将"我的愿望是当个绿巨人,所以我想让我的皮(derma)肤是绿色"中的"皮肤"显示绿色. <span ...
- 【SqlServer系列】JSON数据
1 概述 本文将结合MSDN简要概述JSON数据. 2 具体内容 JSON 是一种流行的数据格式,用于在现代 Web 和移动应用程序中交换数据. JSON 还可用于在 Microsoft Az ...
- 页面的新开页,window.open的hacker
一.window.open如何进行hack 网上看的办法很多,归根接地还是不能解决掉,只有通过a标签的target属性 $obj.click(function(){ var newTab=windo ...
- MySQL存储过程之游标实战
MySQL存储过程之游标实战 博主日前在解决一个项目需求时,没有什么好的方法,于是就来学习存储过程了,之前也是接触过,奈何年少贪玩,竟是全部又还给了大学老师-苦不堪言呐-. 先说一下业务需求吧 ...
- 使用Intellij IDEA的svn时提示出错:Can't use Subversion command line client: svn
问题 原因是安装SVN的时候没有安装command-line功能,要单独安装VisualSVN 下载页面:http://subversion.apache.org/packages.html SVN1 ...
- CRL快速开发框架升级到4.52,谈谈开发过程中的优化
CRL4.5版本已经稳定使用于目前的几个中型项目中,在实际使用中,也发现了不少问题,这些问题都在4.52中提交 CRL具体功能和使用请浏览 CRL快速开发框架系列教程 由于现在项目是一套业务系统,查询 ...
- 【java】内存流:java.io.ByteArrayInputStream、java.io.ByteArrayOutputStream、java.io.CharArrayReader、java.io.CharArrayWriter
package 内存流; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java. ...
- windows环境下mysql主从配置
mysql主从配置. 相关理论知识可以百度一下,这里就不多说了,直接说如何配置. 一.环境介绍及说明 主库所在的操作系统:win7 主库的版本:mysql-5.6.24-winx64.zip 主库的i ...
- xcode 没有 iphone4s 模拟器 的解决方法..
项目需要iphone 4s 测试. 首先是Xcode 8 没有 iphone 4s的模拟器了. 由于线上安装的方式,不管是在code的add simulator 还是 ruby gem 的code-i ...