由服务器IP判断说起的攻防——站长安全顾问系列话题一

简介: 来自黑客防线 前两天有个自己买服务器建站的朋友遇到了麻烦,找我帮忙处理些问题。在整个过程中我感觉有些实用的价值,于是发出来和广大服务器管理员朋友们一起讨论讨论,也希望各位朋友将自己遇到的问题发表出来,一起讨论。

来自黑客防线 

前两天有个自己买服务器建站的朋友遇到了麻烦,找我帮忙处理些问题。在整个过程中我感觉有些实用的价值,于是发出来和广大服务器管理员朋友们一起讨论讨论,也希望各位朋友将自己遇到的问题发表出来,一起讨论。

该朋友的服务器脚本系统是自己写的,又有电子商务的支付平台,所以在针对安全方面,他花了些力气,做了一些防护,大体是这样的:
脚本攻击寻常的手段有三个:
第一是利用注入,找到管理员密码,然后登陆后台,再通过修改上传格式的方式,获得webshell,进而考虑提权,获得服务器控制权限。
第二是通过下载数据之类的办法,找管理员帐户,再登陆、修改、上传、提权。
第三是直接找上传漏洞,跳过注入、后台获取这一步,直接拿到webshell。


针对这三个方面,朋友的应对策略是这样的:
针对第一种攻击:卡死注入!方法当然大同小异:代码审核、防注入系统。这是常见手法。
针对第二种攻击:使用SQL数据库,不在web目录,当然下载数据库是没有办法的。也是常见手法。
针对第三种攻击:严格审计上传。网站设置成可以上传,但是上传文件类型有限制,IIS解析也只解析正常文件类型,最后再给上传目录做一个不能让脚本运行的权限,简单搞定。也不希奇。


或许很多服务器管理员会说:这些我们都做了,但是不排除出现特殊情况,比如脚本系统的注入0day,当遇到这样的情况的时候,以上三点防护可能就没有用了,这时候我们该如何应对?——正好,这个朋友就遇到了这样的问题。不知道为什么,他的系统在防护后,还是被注入了。搞他站的人,也不做破坏,更不动他的支付平台,就时不时的登陆一下他的管理后台,写上一句“某某到此一游……”,人都能气死。
遇到这个情况以后,朋友修改了自己的系统,除了做更加严格的防御外没有别的办法,所以才找上我。

知道这个事后,我也没认真问情况,随手丢了一套IP判断的脚本给他。这套脚本的功能主要是用来判断来访IP,同时对提前定义的信任IP进行比对审核,如果来访IP是信任IP,则正常打开,如果不是则跳转到其他页面。
程序大体是这样的:
number.inc文件内容:
<!--#include file="ip.inc"-->
<%
        sip1=split(ip1,".")
        num1=cint(sip1(0))*256*256*256+cint(sip1(1))*256*256+cint(sip1(2))*256+cint(sip1(3))-1
        sip2=split(ip2,".")
        num2=cint(sip2(0))*256*256*256+cint(sip2(1))*256*256+cint(sip2(2))*256+cint(sip2(3))-1
        sip3=split(ip3,".")
        num3=cint(sip3(0))*256*256*256+cint(sip3(1))*256*256+cint(sip3(2))*256+cint(sip3(3))-1
        sip4=split(ip4,".")
        num4=cint(sip4(0))*256*256*256+cint(sip4(1))*256*256+cint(sip4(2))*256+cint(sip4(3))-1
        sip5=split(ip5,".")
        num5=cint(sip5(0))*256*256*256+cint(sip5(1))*256*256+cint(sip5(2))*256+cint(sip5(3))-1
        sip6=split(ip6,".")
        num6=cint(sip6(0))*256*256*256+cint(sip6(1))*256*256+cint(sip6(2))*256+cint(sip6(3))-1
        sip7=split(ip7,".")
        num7=cint(sip7(0))*256*256*256+cint(sip7(1))*256*256+cint(sip7(2))*256+cint(sip7(3))-1
        sip8=split(ip8,".")
        num8=cint(sip8(0))*256*256*256+cint(sip8(1))*256*256+cint(sip8(2))*256+cint(sip8(3))-1
%>

banip.inc文件内容:
<!--#include file="number.inc"-->
<%
        ip=request.servervariables("remote_addr")
        sip=split(ip,".")
        num=cint(sip(0))*256*256*256+cint(sip(1))*256*256+cint(sip(2))*256+cint(sip(3))-1
        if  ((num=num1) or (num=num2) or (num=num3) or (num=num4) or (num=num5) or (num=num6) or (num=num7) or (num=num8) or (num=num9)) then
        else
        response.redirect "http://www.hacker.com.cn/"
        end if
%>

ip.inc文件内容:
<%
ip1="*.*.*.*"
ip2="*.*.*.*"
ip3="*.*.*.*"
ip4="*.*.*.*"
ip5="*.*.*.*"
ip6="*.*.*.*"
ip7="*.*.*.*"
ip8="*.*.*.*"
ip9="*.*.*.*"
ip10="*.*.*.*"
%>

其中IP.inc文件中可定义信任IP,定义好了,再在需要IP审核的页面,调用此系统就可以。效果是如果不是信任IP,则跳转到我们提前定义的页面。

安稳了几天,这个朋友又来找我,说再次被搞了,而且通过日志和相关痕迹,很确定依然是通过后台进来,又写上了“某某到此一游……”。听到这个我倒是很开心,毕竟这套系统不是那么好突破的,突破了就说明挺强——根据以前测试的结果,这套系统除了通过修改数据包,进行IP欺骗以外,没有别的办法可以突破。
模拟一下入侵的过程:
入侵者利用原来的系统里的记录,找到至少一个信任IP(数据库、日志等地方都可能泄露admin的ip),然后打开后台管理页面,用数据包修改工具,直接修改数据包头,让服务器的脚本判断失误,认为入侵者来自信任IP,从而正常登陆后台,潇洒的留言后走人……
挺好,这个入侵者很有意思,技术也不错,至少资料收集、注入、抓包、上传是没得说。
我来了兴趣,连上了朋友服务器,用bak的脚本文件恢复成干净状态,然后取消了IP判断系统,用了一下IIS设置——其实有一个方式是大家忽略的,很简单,却很实用,那就是IIS的访问控制策略。
我们可以设置后台只允许某一个、几个IP访问,非授权IP是没有使用后台的权限的,这样不管怎么注入,不管拿到了多么高级的后台帐户和密码,注入都将一无用处!而这个方法,是IIS层面上的,不是脚本上的,安全性要高得多。
抓几个简单的图,IIS的访问控制列表设置在这里:



相信这几步大家肯定都能看明白,只是平时有可能忽略了而已。设置上这个以后,该服务器直到现在都是安稳的,看来起了一点点效果。

好了,整体过程就是这样,抛出的砖头是:第一次我用的IP判断脚本系统,有没有其他办法可以突破?第二次我用的IIS的IP判断系统,能不能突破?怎么突破?

希望有思路或者经历过的朋友,都来参与讨论一下,引来几个玉,让我们也提升一把!=。=

目录
相关文章
|
5天前
|
云安全 监控 安全
服务器的使用安全如何保障
德迅卫士主机安全软件,采用自适应安全架构,有效解决传统专注防御手段的被动处境,精准捕捉每一个安全隐患,为您的主机筑起坚不可摧的安全防线
|
12天前
|
存储 弹性计算 运维
端到端的ECS可观测性方案,助力云上业务安全稳定
本文介绍了云原生时代保障业务系统可靠性的方法和挑战,重点探讨了阿里云ECS在提升业务稳定性、性能监控及自动化恢复方面的能力。文章分为以下几个部分:首先,阐述了业务可靠性的三个阶段(事前预防、事中处理、事后跟进);其次,分析了云上业务系统面临的困难与挑战,并提出了通过更实时的监测和自动化工具有效规避风险;接着,详细描述了ECS实例稳定性和性能问题的解决方案;然后,介绍了即将发布的ECS Lens产品,它将全面提升云上业务的洞察能力和异常感知能力;最后,通过具体案例展示了如何利用OS自动重启和公网带宽自适应调节等功能确保业务连续性。总结部分强调了ECS致力于增强性能和稳定性的目标。
|
9天前
|
弹性计算 安全 搜索推荐
阿里云国际站注册教程:阿里云服务器安全设置
阿里云国际站注册教程:阿里云服务器安全设置 在云计算领域,阿里云是一个备受推崇的品牌,因其强大的技术支持和优质的服务而受到众多用户的青睐。本文将为您介绍阿里云国际站的注册过程,并重点讲解如何进行阿里云服务器的安全设置。
|
5月前
|
安全 Ubuntu 应用服务中间件
Web服务器安全最佳实践
【8月更文第28天】随着互联网的发展,Web服务器成为了企业和组织的重要组成部分。然而,这也使得它们成为黑客和恶意软件的目标。为了确保数据的安全性和系统的稳定性,采取适当的安全措施至关重要。本文将探讨一系列保护Web服务器的最佳策略和技术,并提供一些实用的代码示例。
422 1
|
2月前
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
38 2
|
2月前
|
安全 Linux API
Linux服务器安全
人们常误认为服务器因存于数据中心且数据持续使用而无需加密。然而,当驱动器需维修或处理时,加密显得尤为重要,以防止数据泄露。Linux虽有dm-crypt和LUKS等内置加密技术,但在集中管理、根卷加密及合规性等方面仍存不足。企业应选择具备强大验证、简单加密擦除及集中管理等功能的解决方案,以弥补这些缺口。
37 0
|
3月前
|
SQL 安全 网络安全
守护数字资产:服务器迁移期间的安全挑战与对策
【10月更文挑战第4天】在数字化转型的浪潮中,服务器迁移成为企业不可避免的任务。然而,迁移过程中的安全挑战不容忽视。本文从安全考量的角度,探讨了服务器迁移期间可能遇到的安全问题,并提供了相应的对策和代码示例。
114 3
|
3月前
|
域名解析 弹性计算 安全
无法ping通ECS服务器公网IP的排查方法
无法ping通ECS服务器公网IP的排查方法
|
5月前
|
云安全 弹性计算 安全
阿里云服务器基础安全防护简介,云服务器基础安全防护及常见安全产品简介
在使用云服务器的过程中,云服务器的安全问题是很多用户非常关心的问题,阿里云服务器不仅提供了一些基础防护,我们也可以选择其他的云安全类产品来确保我们云服务器的安全。本文为大家介绍一下阿里云服务器的基础安全防护有哪些,以及阿里云的一些安全防护类云产品。
阿里云服务器基础安全防护简介,云服务器基础安全防护及常见安全产品简介
|
6月前
|
弹性计算 运维 数据安全/隐私保护
云服务器 ECS产品使用问题之如何更改服务器的IP地址或端口号
云服务器ECS(Elastic Compute Service)是各大云服务商阿里云提供的一种基础云计算服务,它允许用户租用云端计算资源来部署和运行各种应用程序。以下是一个关于如何使用ECS产品的综合指南。