'or'='or' 网站入侵和漏洞修补

社区服务
高级搜索
猴岛论坛电脑百科'or'='or' 网站入侵和漏洞修补
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
2个回复

'or'='or' 网站入侵和漏洞修补

楼层直达
happylove11

ZxID:1328382

等级: 上校
态度决定一切

举报 只看楼主 使用道具 楼主   发表于: 2009-01-16 0
对象:http://www.gttyqbj.com/

1、过程:
   1)管理入口网站:http://www.gttyqbj.com/manage/Login.asp
   2)先用'or'='or'试登陆,用户名:'or'='or' 密码:'or'='or' 成功登陆

2、可以恢复数据库,无法上传图片,(已被改),但发现有图片木马
   木马地址:

3、备份数据库,取得小马asp执行权限,我这里就直接用大马了

备份数据库成功,

4、上传大马,并登陆

下面是修复,方法有很多在这里介绍两种,咱们使用第2种
   方法1: Replace过滤字符
   解决方法:查找login.asp下的<from找到下边的类似
   username=request.Form("name")
   pass=request.Form("pass")

   修改为

   username=Replace(request.Form("name"), "'", "''")
   pass=Replace(request.Form("pass"), "'", "''")

   语法是屏蔽'和''字符来达到效果.
  
   方法2:在conn.asp 内加入<!--#i nclude file="safe.asp"-->
   注:(前提 登陆页面有<!--#i nclude file="conn.asp"-->)

   把以下代码保存为safe.asp
  
下面是程序代码********************************************************

<%
Dim Query_Badword,Form_Badword,i,Err_Message,Err_Web,name
Err_Message = 3
Err_Web = "safe.htm"
'出错时转向的页面

Query_Badword="'|and|select|update|chr|delete|%20from|;|insert|mid|master.|set|chr(37)|="
'在这部份定义get非法参数,使用"|"号间隔

Form_Badword="'|(|)|;|="
'在这部份定义post非法参数,使用"|"号间隔

On Error Resume Next


if request.QueryString<>"" then
Chk_badword=split(Query_Badword,"|")
FOR EACH Query_Name IN Request.QueryString
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.QueryString(Query_Name)),Chk_badword(i))<>0 Then
Select Case Err_Message
Case "1"
Response.Write "<Script Language=JavaScript>alert('传参错误!参数 "&name&" 的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');window.close();</Script>"
Case "2"
Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>"
Case "3"
Response.Write "<Script Language=JavaScript>alert('传参错误!参数 "&name&"的值中包含非法字符串!\n\n请不要在参数中出现:and update delete ; insert mid master 等非法字符!');location.href='"&Err_Web&"';</Script>"
End select
Response.End
End If
NEXT
NEXT
End if
if request.form<>"" then
Chk_badword=split(Form_Badword,"|")
FOR EACH name IN Request.Form
for i=0 to ubound(Chk_badword)
If Instr(LCase(request.form(name)),Chk_badword(i))<>0 Then
Select Case Err_Message
Case "1"
Response.Write "<Script Language=JavaScript>alert('出错了!表单 "&name&" 的值中包含非法字符串!\n\n你的非法操作已记录,请马上停止非法行为!');window.close();</Script>"
Case "2"
Response.Write "<Script Language=JavaScript>location.href='"&Err_Web&"'</Script>"
Case "3"
Response.Write "<Script Language=JavaScript>alert('唐山味儿不浓 告诉您出错了!参数 "&name&"的值中包含非法字符串!\n\谢谢您光临!,请停止非法行为!');location.href='"&Err_Web&"';</Script>"
End select
Response.End
End If
NEXT
NEXT
end if
%>

************************************************************上面是程序代码

4、再次回到后台管理页面试登陆
  
OK!漏洞已修复
brother_泪

ZxID:1989540

等级: 少将

举报 只看该作者 沙发   发表于: 2009-01-17 0
看看安闲
灌水




































灌水































在灌水
梦、倾城

ZxID:2413321

等级: 少将
无奈秋风花落去,又到明年

举报 只看该作者 板凳   发表于: 2009-01-18 0
防护好点的站 这个文章就等于废话..
华灯初放、今夜、谁以我为真?
« 返回列表
发帖 回复