请先登录 | 注册 |
MM0759.COM |
■标题:论坛的六个新漏洞的补丁![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 发表:具体漏洞的详细情况请参阅“共同研究”版里的相关文章 |
■作者:追风少年 [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 毫秒 . |