wordpress主题HTTP响应拆分漏洞解决方案

偶看网络营销博客通过360网站安全监测出现——HTTP响应拆分漏洞(WASC Threat Classification)

HTTP响应拆分漏洞

该漏洞的危害:攻击者可能注入自定义HTTP头。例如,攻击者可以注入会话cookie或HTML代码。这可能会进行类似的XSS(跨站点脚本)或会话固定漏洞。

解决方案:限制用户输入的CR和LF,或者对CR和LF字符正确编码后再输出,以防止注入自定义HTTP头。

偶看网络营销博客出现这个问题,是因为添加了wordpress评论外链跳转功能,站外网址的跳转是使用“/?r=”直接跳转,没有使用中间跳转页,而且代码过滤不严格,即

$redirect = $_GET['r'];

后面必须过滤CR和LF字符,在该代码后面加上

$redirect = trim(str_replace("\r","",str_replace("\r\n","",strip_tags(str_replace("'","",str_replace("\n", "", str_replace(" ","",str_replace("\t","",trim($redirect))))),""))));

即可成功修复HTTP响应拆分漏洞。

WP情侣主题sweet-clouds出现安全漏洞

sweet-clouds-发现本地路径泄漏

将网站迁移到万网后,使用360网站安全检测对网站进行安全扫描,发现love文件夹(使用wordpress情侣主题sweet-clouds)6个文件出现安全漏洞,主要是index.php页面和page页面。

发现本地路径泄漏——WASC Threat Classification,描述:目标服务器存在本地路径泄漏漏洞。

1.本地路径泄漏漏洞允许恶意攻击者获取服务器上的WEB根目录的全路径(通常在出错信息中)。

2. 通过此漏洞可以推断出其它资源在服务器上的本地路径,配合其它漏洞,恶意攻击者就有可能实施进一步的攻击。危害:恶意攻击者通过利用本地路径信息,在配合其它漏洞对目标服务器实施进一步的攻击。

解决方案:

1、由WEB应用程序实现自己的错误处理/管理系统;

2、如果是PHP应用程序/Apache服务器,可以通过修改php脚本、配置php.ini以及httpd.conf中的配置项来禁止显示错误信息:

修改php.ini中的配置行: display_errors = ‘off’

修改httpd.conf/apache2.conf中的配置行: php_flag display_errors off

修改php脚本,增加代码行: ini_set(‘display_errors’, false);

因为购买的是虚拟主机,无法修改php.ini和apache2.conf文件,只能修改php脚本,打开wp-content\themes\weet-clouds\index.php

在首行添加如下代码

<? ini_set('display_errors', false); ?>

即可修复本地路径泄漏漏洞

OBLOG程序漏洞检测和处理

今天,我使用360免费的网站安全检测(http://webscan.360.cn/)。在扫描后提示文件ShowXml.asp,存在高危安全漏洞——跨站脚本:恶意用户可以使用JavaScript、VBScript、ActiveX、HTML语言甚至Flash利用应用的漏洞,从而获取其他用户信息。攻击者能盗取会话cookie、获取账户、模拟其他用户身份,甚至可以修改网页呈现给其他用户的内容。
网站扫描检测结果(一)

在阿泰对ShowXml.asp进行修改后,重新扫描网站


网站扫描检测结果(二)

整个ShowXml.asp修改为

<!–#include file="inc/inc_syssite.asp"–>
<!–#include file="inc/Cls_XmlDoc.asp"–>
<%
‘————————————————
‘检测搜索引擎,截断程序执行,节省资源. *#0801Spider
oblog.ChkSpider(1)
‘————————————————
Dim user_path,XmlPath
Dim Show,user_group,teamID,calendar,userid,blogname
user_path = Trim(Request("user_path"))
If user_path<>"" Then user_path=oblog.CheckScript(user_path)
user_group = Request("user_group")
If user_group<>"" Then user_group=CLNG(user_group)
teamID = Request("teamid")
If teamID<>"" Then teamID=CLNG(teamID)
calendar = Request("calendar") 
If calendar<>"" Then calendar=oblog.CheckScript(calendar)
userid = Request("userid")
If userid<>"" Then userid=oblog.CheckScript(userid)
blogname = Request("blogname")
If blogname<>"" Then blogname=oblog.CheckScript(blogname)
Dim xmlDoc
Set xmlDoc = New Cls_XmlDoc
On Error Resume Next
‘用户页面信息
If user_path <> "" Then
 XmlPath = blogdir&user_path&"/user.config"
 If xmlDoc.LoadXml (XmlPath) Then
  Echo xmlDoc.SelectXmlNode ("comment",1)
  Echo xmlDoc.SelectXmlNode ("mygroups",1)
  Echo xmlDoc.SelectXmlNode ("newblog",1)
  Echo xmlDoc.SelectXmlNode ("newmessage",1)
  Echo xmlDoc.SelectXmlNode ("search",1)
  Echo xmlDoc.SelectXmlNode ("subject",1)
  If OBLOG.CacheConfig(81) = "1" Then Echo xmlDoc.SelectXmlNode ("aobomusic",1)
  Echo xmlDoc.SelectXmlNode ("links",1)
  Echo xmlDoc.SelectXmlNode ("myfriend",1)
  Echo xmlDoc.SelectXmlNode ("blogname",1)
  Echo xmlDoc.SelectXmlNode ("info",1)
  Echo xmlDoc.SelectXmlNode ("placard",1)
 End if
End if
‘用户页面广告
If user_group <> "" Then
 Dim rst
 Set rst=oblog.Execute("select g_ad_sys From oblog_groups Where groupid=" & CLng(user_group) )
 If rst(0) = 1 Then
  XmlPath = blogdir&oblog.CacheConfig(80)&"/GG.config"
  If xmlDoc.LoadXml (XmlPath) Then
   Echo xmlDoc.SelectXmlNode ("ad_usertop",1)
   Echo xmlDoc.SelectXmlNode ("ad_usercomment",1)
   Echo xmlDoc.SelectXmlNode ("ad_userbot",1)
   Echo xmlDoc.SelectXmlNode ("ad_userlinks",1)
   ‘兼容旧广告
   Echo xmlDoc.SelectXmlNode ("gg_usertop",1)
   Echo xmlDoc.SelectXmlNode ("gg_usercomment",1)
   Echo xmlDoc.SelectXmlNode ("gg_userbot",1)
   Echo xmlDoc.SelectXmlNode ("gg_userlinks",1)
  End If
 End If
 rst.Close
 Set rst = Nothing
‘群组页面广告
ElseIf teamID <> "" Then
 XmlPath = blogdir&oblog.CacheConfig(80)&"/GG.config"
 If xmlDoc.LoadXml (XmlPath) Then
  Echo xmlDoc.SelectXmlNode ("gg_teamtop",1)
  Echo xmlDoc.SelectXmlNode ("gg_teamcomment",1)
  Echo xmlDoc.SelectXmlNode ("gg_teambot",1)
  Echo xmlDoc.SelectXmlNode ("gg_teamlinks",1)
  ‘兼容旧广告
  Echo xmlDoc.SelectXmlNode ("ad_teamtop",1)
  Echo xmlDoc.SelectXmlNode ("ad_teamcomment",1)
  Echo xmlDoc.SelectXmlNode ("ad_teambot",1)
  Echo xmlDoc.SelectXmlNode ("ad_teamlinks",1)
 End If
End If
Sub Echo(sStr)
 Response.Write sStr
 Response.Flush
End Sub
Set XmlDoc = Nothing
‘Response.Write oblog.htm2js_div ("<a href=""http://www.oblog.cn/rss/?rss="&oblog.CacheConfig(3) &blogdir&user_path&"/rss2.xml"" target=""_blank""><img src=""http://www.oblog.cn/xml.jpg"" border=""0"" /></a>","txml")
Response.Write oblog.htm2js_div ("<a href="""&oblog.CacheConfig(3)&"user_url.asp?action=add&mainuserid="&userid&"&sTitle="&blogname&"&sUrl="&blogdir&user_path&"/rss2.xml"" target=""_blank""><img src=""http://www.oblog.cn/xml.jpg"" border=""0"" /></a>","txml")
Set OBLOG = Nothing
%>

 

感谢阿泰和OBLOG交流互助群(211153556),更多关于OBLOG的内容请访问http://www.oblog.cc/
 

OBlog46体验版__patch_20080827补丁(8月28日更新)

本补丁下载地址:

OBlog46体验版__patch_20080827补丁下载地址:

下载信息  [文件大小:194.4 KB ] 点击浏览该文件:oblog4.60_体验版_patch_080827.rar

发布时间:2008年8月27日

更新时间:2008年8月28日9:15

作者:OBLOG开发团队

适用范围:

OBLOG4.6 080623 Access体验版

注:本补丁为安全补丁

本次修正:

这个版本解决了OBLOG4.6 080623版本中存在的bug问题,以下为修改说明:

01、修正一个安全问题

02、修正博讯的部分问题

03、修正首页显示已删除DIGG日志问题

04、修正内容管理后台不显示带符号日志标题的问题

05、修正系统后台全部用户管理按用户分类查询翻页的问题

06、修正内容管理后台敏感用户列表多选用户审核的问题

07、修正了一个注册方面的问题

08、修正了用户后台不能选择群组模板的问题

同时本补丁添加了两项新功能:

01、增加系统首页用户名及昵称搜索功能

02、增加新验证码

8月28日更新说明:

01、修正了0827补丁中的安装说明

02、修正了内容管理后台修改用户报错问题

演示网站:http://www.oblog.com.cn

提  醒:

演示网站是按照OBLOG标准程序搭建,建议大家在演示网站测试无误后再进行升级,出现下面两种情况请选择相应的应对措施。

1、如发现演示网站出现错误,请暂停在贵网站升级补丁并将此错误及时反馈给开发人员,然后等待开发人员更新补丁;

2、如果您的网站打了补丁出现错误,而演示网站没有此项错误,此仔细核对您的升级过程。

安装说明:

在打此补丁之前请先确定当前版本号为OBLOG4.6 080623 Access体验版(版本号可查阅ver.asp文件)。

1、将补丁文件按照目录覆盖到博客目录下

2、系统后台——模板管理——群组模板分类管理,如果此处没有群组分类,则添加模板分类。

3、系统后台——模板管理——管理群组模板,将没有分类的群组模板加入群组模板分类(群组模板分类不为0),这样就可以了。

OBlog4.60  20080827 完整稳定体验版本下载地址:

http://down.oblog.cn/oblog4/oblog46_Final_20080827.rar