请先登录 | 注册
MM0759.COM
论坛的六个新漏洞的补丁![2003-8-10] - 文章首页返回版区
■标题:论坛的六个新漏洞的补丁![2003-8-10]
■作者:IPSC [2003/8/9 16:53:12]
具体漏洞的详细情况请参阅“共同研究”版里的相关文章

伙藥伙藥伙藥**一)关于friend.asp的漏洞的解决办法
备注:不外是把代码放在输入用户名的地方,把自己想执行的命令强制执行,
只要把ASP代码过滤掉就行了,就象反病毒一样,你花一个月做一个病毒程序,
人家只要抓住你一个特征码,放入毒库提供下载,你的病毒就会被抓。其实后
面好几个漏洞都是通过这种方法黑论坛的。

通过提交恶意ID类的,可以用INT或者用限制长度小于15来过滤,
通过提交恶意文本类的,过滤掉“%20、update、set、where”之类的就可以了






请用记事本打开该文件,找到下面这段代码:
if conn.execute("Select count(id)from [user] where username='"&Request("username")&"'")(0)=0 then
error2("数据库不存在此用户的资料!")
end if


在下面另起一行,加上以下代码就行了:
uname=""&Request("username")&""
if Len(uname)>12 then
error2("非法操作!")
end if
if instr(uname,"#")>0 or instr(uname,"username")>0 or instr(uname,";")>0 or instr(uname,"'")>0 or instr(uname,"update")>0 or instr(uname,"set")>0 or instr(uname,"where")>0 or instr(uname,"`")>0 or instr(uname,"|")>0 or instr(uname," ")>0 or instr(uname," ")>0 or Instr(uname,"%")>0 or Instr(uname,"&")>0 or Instr(uname,"") or Instr(uname,"+")>0 then
error2("非法操作!")
end if

保存后上传吧

伙藥伙藥***二)关于prison.asp的漏洞,

找到以下代码:(大概在27行)
if Request("causation")="" then
error("<li>您没有输入入狱原因")
end if



在下面另起一行,加上如下代码:
uname=""&Request("causation")&""
if Len(uname)>18 then
error2("非法操作!")
end if
if instr(uname,"#")>0 or instr(uname,"userpass")>0 or instr(uname,"username")>0 or instr(uname,";")>0 or instr(uname,"'")>0 or instr(uname,"update")>0 or instr(uname,"set")>0 or instr(uname,"where")>0 or instr(uname,"`")>0 or instr(uname,"|")>0 or instr(uname," ")>0 or instr(uname," ")>0 or Instr(uname,"%")>0 or Instr(uname,"&")>0 or Instr(uname,"") or Instr(uname,"+")>0 then
error2("非法操作!")
end if

uname=""&Request("username")&""
if Len(uname)>12 then
error2("非法操作!")
end if
if instr(uname,"#")>0 or instr(uname,"userpass")>0 or instr(uname,"username")>0 or instr(uname,";")>0 or instr(uname,"'")>0 or instr(uname,"update")>0 or instr(uname,"set")>0 or instr(uname,"where")>0 or instr(uname,"`")>0 or instr(uname,"|")>0 or instr(uname," ")>0 or instr(uname," ")>0 or Instr(uname,"%")>0 or Instr(uname,"&")>0 or Instr(uname,"") or Instr(uname,"+")>0 then
error2("非法操作!")
end if






找到以下代码:(大概在78行)

if Request.Cookies("userpass")<>rs("userpass") then
error("<li>您的密码错误")
end if

在下面另起一行,加入如下代码:
sql="select * from user where username='"&Request("username")&"'"
rs1.Open sql,Conn,1
if rs1("membercode")>3 then
error2("非法操作!")
end if
rs1.close

------------------------------------------------------------------

伙藥伙藥*三)关于postvote.asp的漏洞;
用记事本打开,找到如下代码:
if Request("postvote")="" then
error("<li>请选择,你要投票的项目!")
end if

在下面另起一行,加入如下代码:

if len(id)>15 then
error2("非法操作!")
end if
if len(forumid)>15 then
error2("非法操作!")
end if

也可以把最上面的

forumid=Request("forumid")
id=Request("id")

改为

forumid=int(Request("forumid"))
id=int(Request("id"))
------------------------------------------------------------------

伙藥伙藥*四)关于move.asp的漏洞;
用记事本打开,找到如下代码:
ID=Request("ID")


改为:
ID=int(Request("ID"))






----------------------------------------------


伙藥伙藥*五)关于retopic.asp的漏洞;
用记事本打开,找到如下代码:

forumid=Request("forumid")

改为
forumid=int(Request("forumid"))
id=int(Request("id"))
retopicid=int(Request("retopicid"))

----------------------------------------------


伙藥伙藥*六)关于searchok.asp的漏洞;
用记事本打开,找到如下代码:
forumid=Request("forumid")

改为:
forumid=int(Request("forumid"))




至此,已经发现的容易被提交恶意代码的漏洞和方法就是这样了。






[注意:此帖子在 2003-8-13 1:05:31 被作者改动过]me,"") or Instr(uname,"+")>0 then
error2("非法操作!")
end if






找到以下代码:(大概在78行)

if Request.Cookies("userpass")<>rs("userpass") then
error("<li>您的密码错误")
end if

在下面另起一行,加入如下代码:
sql="select * from user where username='"&Request("username")&"'"
rs1.Open sql,Conn,1
if rs1("membercode")>3 then
error2("非法操作!")
end if
rs1.close

------------------------------------------------------------------

伙藥伙藥*三)关于postvote.asp的漏洞;
用记事本打开,找到如下代码:
if Request("postvote")="" then
error("<li>请选择,你要投票的项目!")
end if

在下面另起一行,加入如下代码:

if len(id)>15 then
error2("非法操作!")
end if
if len(forumid)>15 then
error2("非法操作!")
end if

也可以把最上面的

forumid=Request("forumid")
id=Request("id")

改为

forumid=int(Request("forumid"))
id=int(Request("id"))

回复/版区/上篇/下篇/发贴/仅文字/HTML
【倒序/最近21条回复】
■作者:y2khjh [2003/10/27 13:19:00]
searchok.asp的修改方法有问题,应该把:if Request("forumid")<>"" then
forumidor="forumid="&forumid&" and"
end if
改为
if forumid<>empty then
if isnumeric(""&forumid&"") = flase then:error("<li>非法操作"):end if
forumidor="forumid="&forumid&" and"
end if

而之前的
forumid=(Request("forumid"))
不要改

■作者:ZHANGYUANKEK [2003/10/15 5:55:38]
原文由 IPSC 发表:具体漏洞的详细情况请参阅“共同研究”版里的相关文章

伙藥伙藥伙藥**一)关于friend.asp的漏洞的解决办法
备注:不外是把代码放在输入用户名的地方,把自己想执行的命令强制执行,
只...


■作者:追风少年 [2003/10/6 17:35:40]
很好!

■作者:酷乐____girl [2003/9/27 19:23:53]
很好;啊

■作者:酷乐____girl [2003/9/27 19:23:02]
很好啊,辛苦了

■作者:leo [2003/9/25 15:30:39]
很好哦。辛苦你了!

■作者:longhu [2003/8/30 4:11:07]
太麻烦了!~不过谢谢你!~

■作者:周周 [2003/8/27 10:42:42]
辛苦了,好久不见,可好?

■作者:IPSC [2003/8/19 18:10:07]
上文二)关于prison.asp的漏洞有个地方不妥,容易造成不能关人


把要修改两处的:
if instr(uname,"#")>0 or instr(uname,"userpass")>0 or instr(uname,"username")>0 or instr(uname,";")>0 or instr(uname,"'")>0 or instr(uname,"update")>0 or instr(uname,"set")>0 or instr(uname,"where")>0 or instr(uname,"`")>0 or instr(uname,"|")>0 or instr(uname," ")>0 or instr(uname," ")>0 or Instr(uname,"%")>0 or Instr(uname,"&")>0 or Instr(uname,"") or Instr(uname,"+")>0 then


改为:
if instr(uname,"update")>0 or instr(uname,"set")>0 or instr(uname,"where")>0 then

■作者:yhy [2003/8/12 15:33:17]
老大,“伙藥伙藥*五)”和 “伙藥伙藥*六)”是矛盾的,应该怎么改?

(查看完整版网页)



短讯|首页|登录|算法|电脑版 .
DK MiniBBS Plus v2.0
mm0759.com
437 毫秒 .