webshell防范的一点笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nohaoye/article/details/46987587

       今天无意中发现数据库中有一条后缀是php的文件路径记录,一开始以为只是内部人员随便找个文件测试一下功能而已,然而我还是找到了这个文件并且打开看了下,发现是久违的大马。随即我也尝试了一下一些上传功能,发现有的地方不止可以上传成功而且能直接打开执行文件,一下子就打开了黑乎乎的页面。


        只要是程序,漏洞总是难免的,我们要做的就是尽量的考虑到所以情况,然后防范,万一还是被攻破了,我们就要快速的修复,但是如果用户数据没了,漏洞修复了也无济于事,所以我们最必要做的事不是将程序做得无懈可击,也不是使用各种防护软件,而是从你们最珍贵的用户数据着手。


        当然,上面只是个人见解,接下来还是回到我们的正题来。


        个人理解来说,上面我说到的大马,是比较通俗的说法,其实就是webshell木马。通过上传大马你就能拿到webshell其实就是php、jsp、asp等一些动态语言脚本制作的网页以达到控制他人电脑的目的,利用上传漏洞,将大马上传上去,再去访问它,就可以说是拿到webshell了。“大”是相对“小”来说的,小马通常就是几句话的脚本,用途也有限,不过基本能实现写入文件。大马的功能就十分丰富了,强大到可以操作整个程序的文件乃至服务器上的其他程序。这种后台脚本的危害可见有多大,假如入侵者只是善意提醒或者玩玩的话也没甚么,但是如果用来恶意破坏程序,删除用户数据,这样的损失无疑是无法弥补的。下面就webshell的防范作下记录,持续更新各种有效方法。


        首先,搜索到的资料是关于服务器配置防止webshell上传的,防范的措施大概有三种,第一种的思路是将专门存放上传文件的文件夹里面的脚本类型文件,解析成其他类型的文件,服务器不会以脚本类型来执行它。第二种是匹配文件夹里的脚本类型文件,将其设置为无法读取及操作。第三种是将文件上传到一个单独的文件夹,给一个二级的域名,然后不给这个虚拟站点解析脚本的权限,听说很多网站都用这种方式。这三种都是基于服务器的,个人觉得基本是大同小异,下面给出apache下的配置方法:


第一种:window下写好完整路径,下同

<Directory "/www/yourProject/uploads">
    AddType text/html .php
</Directory>

第二种:这写法在window下可行,linux的话再看下面

#window的(注:window下写好完整路径)

<Directory "/www/yourProject/uploads">
    <Files ~ ".php">
	Order allow,deny
	Deny from all
    </Files>
</Directory>
#下面是linux的,通过?i忽略大小写

<Directory "/www/yourProject/uploads">
    <FilesMatch ".(?i)php">
	Order allow,deny
	Deny from all
    </FilesMatch>
</Directory>

第三种:这我没试过,网上资料如下:

<VirtualHost code.neeao.com>
...
<Files ~ ".php">
Order allow,deny
Deny from all
</Files>
</VirtualHost>



展开阅读全文

没有更多推荐了,返回首页