再放一篇——《手动修改让动网更安全》

手动修改让动网更安全
Snakehu

  最近这段时间,动网被各位牛人们翻了个底朝天。虽然各位提心吊胆的管理员们都抢着把论坛升级到了7.1 sp1。但也说不定哪一天又会冒出一个大洞,让各位的苦心付诸东流。
  如何能延缓论坛被人拿下的时间呢?这就是今天的正题。

目标:新漏洞公布,补丁却未发布的时间里让论坛坚持下来。
要求:
1. 别人没有拿到你站的WebShell。(别告诉我你站除了论坛还有很多洞)
对象:Dvbbs 7.1 sp1
2. 本文所讲述的大多是雕虫小技,高手请勿取笑。

好了切入正题。

一、身份双重验证
大家都应该知道Dvbbs前台的权限验证都放在/inc/Dv_ClsMain.asp里。其判断方法是查询数据库,通过UserGroupID判断身份。如果要提升权限,一般的思路就是通过某个漏洞修改数据库。我们可以通过修改Dv_ClsMain.asp来再加一个验证:

在身份验证(823-834行)下添加:

If Master = True or SuperBoardmaster = True or Boardmaster = True Then
Dim maslist
maslist = ",admin,snakehu," '将论坛的斑竹权限以上的用户名字写在这里
  If InStr(maslist,Request.cookies(forum_sn)("username"))=0 then
  Response.Redirect("../rubish.asp")
  Response.End
  End If
End If

在论坛主目录下建立一个错误返回页面rubish.asp。修改后。如果maslist里没有新添加管理员或斑竹的用户名。那么使用这个帐户登陆时将会被跳转到错误返回页面。当然这里只是提出个思路。
实际中可以另外建立一个maslist.asp。如果要添加新的版主或管理员可以直接在maslist.asp里添加,方便一些。还可以在数据库里写入相关的东东,然后查询数据库对比。错误处理方面,可以不给错误页面,而是直接在满足相应条件后删除数据库里这个用户,并跳转到主页。实现这双重验证的目的很简单,只要比原始版本的多一样验证就可以了。

二、防跨站攻击
大家记得跨站攻击这个随时都有的痛根吧。记得最近IE6.0又暴出个“嵌入内容跨站脚本漏洞”。要是用来盗取你管理员的cookie或者通过相应代码实现对前台设置的修改,比如通过构造有关代码就把某帖固顶和提某人为版主什么的,应该效果不错哟。通常情况下各位管理员都应该有对付跨占的方法,比如过滤+从不打开带叉的图片。当然,这个方法并不怎么好,我们看看下面的方法。

1)防止利用跨站实现特定代码
对付这种东西,我想起了一个方法。
这里我们以对发表主题的修改为例。在Savepost.asp的顶端加上:

Dim snakehu
snakehu=Request("snakehu")
If snakehu <> "snakehu" Then
Response.redirect "index.asp"
End If

在Post.asp中搜索“SavePost.asp?Action=”这样的字符,全部都替换成:“SavePost.asp?snakehu=snakehu&Action=”。这样子各位黑客们按照常理出牌就没用了。当然实际中单单如此效果不佳。至于为什么不用我说了吧。
大家一定还记得以前的修改reg.asp防暴力营销的方法吗。拿到这里不是更好吗?由于网上有相关的东西,我就不占篇幅了。

2)防止cookie盗取
这个东西我认为是最麻烦的。cookie是存放在本地的,如果别人拿到了管理员的cookie,当然可以伪装进入。并且这样还可以躲过我们前面讲到的双重验证。既然根本目的是防止管理员的cookie被盗。那么我们还是在管理员的cookie上做点手脚。
我的思路是每次都验证管理员登陆ip和cookies记录的ip是否一致,如果不就删除cookies,跳转到用户登录页面。
大家在动网的cookie里肯定会发现username、password等值。我们可以在cookie生成的时候增加一个条件判断,如果是管理员,则再生成一个值up,用于记录加密后的ip地址。同时在Dv_ClsMain.asp里加入判断,如果是管理员,则读取cookie中的up值和当前加密后的ip地址作对比,如果cookie中的ip与当前不符,就清除cookie并跳转到登陆页面。其关键是别让人看出来up是什么东西,你最好取个比较奇怪的名字。如果别人知道这是个ip记录,那么他可以修改up的值达到目的。

三、对付md5爆破狂
记得在N多新漏洞报道的文章中,作者拿到md5密码后要进后台都是爆破。说实话本人不喜欢这个方法。但既然有人愿意爆,那我们就让他爆吧。我们可以在Dvbbs的md5.asp里做手脚。
1)Dvbbs不是取的md5值的中间做密码吗?MD5=LCase(WordToHex(b) & WordToHex(c))。我们给他改成取后面。MD5=LCase(WordToHex(c) & WordToHex(d)),这是老方法了。
2)谁给你说论坛密码一定要用md5加密。我们换个加密方法,只要让加密处理后的结果和md5长的像点,就让他们拿去破吧。如果你愿意,可以自己写加密方法,只要不让人知道就行。
3)改动加密方式,随便改改吧。改一个字母结果就天翻地覆了。比如md5_FF a, b, c, d, x(k + 0), S11, &HD76AA478这样的式子,改他一下子,谁会这道?
以上的修改必须在论坛安装前实现,否则会让改前的用户无法登陆。当然你也应该把你的admin密码修改后再写到数据库里。

四、对付搜索引擎
这样虽然只能降低你被大漏洞泛伤的几率。不过你也应该考虑一下。在页脚的版权信息里把类似于Powered By Dvbbs Version 7.1.0 Sp1的东西删掉吧。
当然你如果不怕影响流量的话,可以在主目录下写个robot文件,拒绝搜索。
同样的,所有的动网关键字都应当注意。虽然其他的关键字相对于Powered By Dvbbs Version 7.1.0 Sp1而言,利用率要低一些。但是也不得不防。比如典型的reg.asp里存在的关键字可以被暴力营销软件利用。

五、双数据库防止数据丢失
如果你碰到了一变态的,被你构造的种种限制惹得心里极度扭曲。那么他可能会想办法利用漏洞删除你的数据。对付这种人,我们也只有变态点。
对付这样的人,我们的目标就是保住数据。在动网后台,本来就有一个数据库备份,但出于安全考虑,我通常是把它替换成了空白页。我的思路是在信息提交的时候,同步地向另外一个备份数据库里写入一份同样的信息。但这个备份数据库不参与整个论坛的运作。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值