|

编辑评语:脚本方面的入侵虽然时日已久,但从整个技术范围现状上来讲,仍然不见有消减的趋势。本文虽然也是利用了脚本漏洞,但刨除了“注入”等大家已经耳熟能详的字眼,从Session欺骗的角度来了一次实例的讲解……
菜鸟恶补:
什么是Session:在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。
什么是Session欺骗:所谓Session欺骗,就是在只对用户做Session验证的系统中,通过伪造Session的内容来得到相应的用户权限登录操作。
原理举例说明:通过对以上对于Session和Session欺骗的简单定义,为便于大家理解,我们来做一个小小的解释分析(以ASP为例,部分内容来源于网络)。首先简单说一下一般ASP系统的身份验证原理。一般来说,后台管理员在登录页面输入账号密码后,程序会拿着他提交的用户名密码去数据库的管理员表里面找,如果有这个人的账号密码就认为你是管理员,然后给你一个表示你身份的Session值;或者程序先把你的用户名密码提取出来,然后到数据库的管理员表里面取出管理员的账号密码来和你提交的相比较,如果相等,就跟上面一样给你个表示你身份的Sesion值。然后你进入任何一个管理页面它都要首先验证你的Session值,如果是管理员就让你通过,不是的话就引导你回到登录页面或者出现一些奇奇怪怪的警告,这些都跟程序员的个人喜好有关。 知道了原理,我们现在举例简述一下,我们的思路就是通过我们的ASP木马来修改它的程序然后拿到一个管理员Session值,这样的话尽管我们没有管理员密码,但是我们一样在后台通行无阻了。我把这种方法称为Session欺骗 |
不多作介绍,开门见山直接进入。本文是经过实测后才找到的代码。
目标站点:http://www.xxxxx.com,先找到后台http://www.xxxxx.com/manage/Login.asp,至于网站具体是什么管理系统,大家可以对照图片特殊的特征,自己去搜索一下。找到后台后,如图一:

(图一)
我们根据程序代码来看一下:
以下是代码片段一:
login.asp验证代码:
<% myName=Request.Form("name") //未作任何过滤
PWD=Request.Form("password")
If myName<>"" Then %> //第一关 |
以下是代码片段二:
<!-- #include file="../conn/conn.asp" -->
<% sql="select * from tb_manager where Name='"&myName&"' and Password='"&PWD&"'"
rs.open sql,conn,1,3
If not rs.Eof Then '管理员登录成功
Session("Admin")=rs("Name") //直接赋值#a处
Session("Type")=rs("Type")
Session("id")=rs("ID")
set rs=nothing
conn.close
set conn=nothing%> //第二关 |
以下是代码片段三:
<!-- #include file="../conn/conn.asp" -->
<%sql="insert into tb_log(Name,Content,IssueDate) values('"&session("Admin")&_"','后台登录验证成功','"&Now()&"')"
rs.open sql,conn
set rs=nothing
conn.close
set conn=nothing%>
<script language="javascript">
opener.location="Manager.asp";
window.close(); //关闭当前窗口</script>
<% Else '管理员登录失败%> //第三关 |
以下是代码片段四: <script language="javascript">
alert("您的输入有误,本系统将取消您登录后台的权利,登录入口即将关闭。");
window.close(); //关闭当前窗口
</script> |
[1] [2] 下一页 |