admin管理员组

文章数量:1532149

2024年4月24日发(作者:)

网站常见漏洞以及解决办法

问题 远端WWW服务支持TRACE请求

①开启Apache 的mod_rewrite功能:

在Apahce的配置文件中把#LoadModule rewrite_module

modules/mod_前的#去掉

在中找到下面这段

Options FollowSymLinks AllowOverride None

将AllowOverride None 改成 AllowOverride ALL

这样Apache的mod_rewrite就开启了。

②在最后加上

RewriteEngine on

RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)

RewriteRule .* - [F]

禁用URL,返回403HTTP状态码

mod_rewrite模块提供了一个基于规则的(使用正则表达 式分析器的)实时转向URL请求

的引擎。支持每个规则可以拥有不限数量的规则以及附加条件规则的灵活而且强大的

URL操作机制。此URL操作可以取决于各种测试,比如服务器变量、环境变量、HTTP

头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数据库。

RewriteEngine On

RewriteCond %{HTTP_HOST} ^$ [NC]

RewriteRule ^/(.*)$ /$1 [R=301,L]

对于unix,Red Hat Linux运行的Apache是编译好的程序,提示信息被编译在程序里,

要隐藏这些信息需要修改Apache的源代码,然后,重新编译安装程序,以替换里面

的提示内容。

1

问题

远端HTTP服务器类型和版本信息泄漏

㈠apache版本信息泄漏解决方法:

在配置文件Apache2.2/conf/中加入

ServerTokens Prod[uctOnly](等级[Prod,Major, Minor, Min, OS])

ServerSignature Off

重启 apache 现在 http 头里面只看到: Server: Apache[/2, /2.0, /2.0.41, /2.0.41 (Unix)]

㈡服务器类型泄漏解决办法:

Tomcat:

①方法一:修改ties里的版本信息

Tomcat45:tomcat_home

ties

Tomcat6:tomcat_home

ties

操作:用WinRAR打开 找到ties 解压并修改 再拖入即可。

②方法二:使用WEB容器捕获异常进行处理

在文件头部加上:

2

ion/system_

>

404/system_

400/system_

500/system_

n>

① Apache MPM worker.c 远程拒绝服务漏洞。

Apache 2的worker模块在处理中止的TCP连接时存在内存泄漏,远程攻击者可以反复触发

这种情况耗尽所有可用的内存,最终导致拒绝服务

② ss本地PCRE整数溢出权限提升漏洞。

PCRE在处理字符类时存在缓冲区溢出漏洞,如果用户发送了codepoint大于255的超长

UTF-8字符类的话,就可能触发这个溢出,导致执行任意指令。

问题

3

③ Apache mod_imagemap和mod_imap模块跨站脚本漏洞。

Apache的mod_imagemap和mod_imap模块中没有正确地过滤某些用户输入,允许远程攻

击者提交恶意的HTTP请求执行跨站脚本攻击。

④ Apache mod_rewrite模块单字节缓冲区溢出漏洞。

Apache的mod_rewrite模块在转义绝对URI主题时存在单字节缓冲区溢出漏洞,攻击者可能利用此漏洞在服务器上

执行任意指令。mod_rewrite模块的escape_absolute_uri()函数分离LDAP URL中的令牌时,会导致在字符指针数组

以外写入指向用户控制数据的指针,这样就可能完全控制受影响的主机。

问题

这些问题都是由于Apache 自身的缺陷引起的。

解决方法:

① 打apache补丁可解决

② 升级apache到最新版本。

建议最好用升级apache到最新版本。

SQL 注入攻击

SQL注入的原理:

就是从客户端提交特殊的代码,从而收集程序及服务器的信息,从而获取你想到得到的

资料。

1、单引号’法。通过错误提示,判断获取服务器的信息。

2、经典的1=1、1=2测试法。这只是传入参数是数字型的时候用的判断方法。

3、判断数据库类型及注入方法。and user>0 user是SQLServer的一个内置变量,它的值

是当前连接的用户名,类型为nvarchar。拿一个nvarchar的值跟int的数0比较,系统会

先试图将nvarchar的值转成int型,当然,转的过程中肯定会出错,SQLServer的出错提

示是:将nvarchar值 ”abc” 转换数据类型为 int 的列时发生语法错误,呵呵,abc正是

变量user的值,这样,不废吹灰之力就拿到了数据库的用户名。

4

本文标签: 漏洞服务器溢出规则类型