我对bbsxp的一点认识
/*--------------------------------占位,待续--------------------------------
文章作者:菠萝头头(R.S.T)
文章来源:tbhacker 第二站
联系作者:qq:513517451 Email:weiyi03362@163.com
文章说明:写下自己对BBSXP的一点认识.
文章申明:本文只讨论技术性问题,如果出现任何后果与本文著者无关
如有错误请与我联系,万分感谢!
-----------------------------------占位,待续------------------------------*/
我最早接触ASP就是从这个脚本,我自己的感觉是,这个脚本相对简单,代码比较少.这个我只写下自己对它的安全性的一点认识.从这个脚本安全性的理解看当今其它BBS的缺陷.
1.首先说下数据库连接文件conn.asp,这个文件里有这么个代码:
On Error Resume Next
...........
If Err Then
err.Clear
这个就是暴库的根源所在,我们可以随便翻下网上的代码就可以找到一大片没有这个容错语句的脚本.
2.OK,来到这个脚本最重要的一个文件setup.asp,这个文件几乎包含在了所有的页面中了,可见它的重要.
CookieUserName=HTMLEncode(unescape(Request.Cookies("UserName")))
这句对COOKIE进行了处理,不然非法的字符就可以注入了
sql="select * from [BBSXP_Users] where UserName='"&CookieUserName&"'"
Set Rs=Conn.Execute(SQL)
if Rs.eof then Response.Cookies("UserName")=""
if Request.Cookies("Userpass") <> Rs("Userpass") then Response.Cookies("UserName")=""
membercode=Rs("membercode")
Userface=""&Rs("Userface")&""
NewMessage=Rs("NewMessage")
set rs=nothing
end if
这一段是对合法身份的验证,也就是在这段代码里,很多脚本会犯个严重的错误,那就是他们只是简单的处理了cookie,没有对COOKIE的合法性进行验证,还记得or '1'='1'不?
if SiteSettings("BannedIP")<>"" then
filtrate=split(SiteSettings("BannedIP"),"|")
for i = 0 to ubound(filtrate)
if instr("|"&Request.ServerVariables("REMOTE_ADDR")&"","|"&filtrate(i)&"") > 0 then response.redirect "inc/BannedIP.htm"
next
end if
个人觉得这段屏蔽IP对懂计算机的人没什么用处,找个代理就能绕过去
if Request.Cookies("skins")=empty then Response.Cookies("skins")=SiteSettings("DefaultSiteStyle")
这段我看是有一点点小缺陷的,不过即使改了也不见得有什么用处.刚开始我以为这里是有问题的.你看,对Cookies("skins")是没有任何过滤的,我以为可以有什么点用,可是除了欺骗自己没什么用.Cookies("skins")在cookies.asp里保存的时候是被过滤了的,但是在取出来的时候是没管它了.
response.write "<html><head><meta http-equiv=content-Type content=text/html;charset=gb2312><meta name=keywords content='"&SiteSettings("MetaKeywords")&"'><meta name=description content='"&SiteSettings("MetaDescription")&"'></head><script src=inc/BBSXP.js></script><script src=images/skins/"&Request.Cookies("skins")&"/bbs.js></script><Link href=images/skins/"&Request.Cookies("skins")&"/bbs.css rel=stylesheet>"'
function HTMLEncode(fString)和function ContentEncode(fString)估计是出现问题最多的地方了,这里有个函数,过滤掉了发现的非法字符.
<-------------------------待续------------------------------------>
浙公网安备 33010602011771号