to 楼上
首先我没说验证码就是session,在代码中有一句session("getcode"),我怀疑此与session有关
而且楼上说动网后台的验证方式是前台验证+后台的双验证方式的。我们先做个实验,我在本机上测试,但所有的测试都是在不关闭浏览器的前提下做的.
dvbbs有2个管理员,一个是admin有所有管理权限,另一个管理员为test只能管理“用户管理”。其中admin密码admin888,test密码为123456,后台前台同一帐号密码一样,后台管理登陆ID不能互相使用.
我先用admin登陆前台,再进后台,不关闭浏览器直接登陆到论坛根目录下面,点“重登陆”(在后台没有点退出,是为了保存admin的session)。这时退出后,用test登陆前台,直接点“管理”进入admin_index.asp,这时并没有让我输入密码,直接进了后台了,查看权限,可以对后台进行管理,不是说test用户只有“用户管理”吗?怎么这里对所有后台权限可有,可以确定我现在用的是admin的session,但用户是test...这似乎说明了后台验证并非是前台+后台...
不过,这好像还不能证明什么。如果admin是一个session,test是一个session的话,不是说session默认保存是20分钟吗?那好,这次我先用admin登陆,截获此管理员admin的session:BODZOHQDMCZCPYYMHSHU=NXFSRHLEUAAPBKGPYXPOLEJPNQOJFNDWWBKXWMRN,进入后台,我点退出,然后退到前台再点退出,不关闭浏览器。然后再用test用户登陆抓包,查看session,晕还为BODZOHQDMCZCPYYMHSHU=NXFSRHLEUAAPBKGPYXPOLEJPNQOJFNDWWBKXWMRN,一模一样,最后总结,只要是在同一个浏览器中,打开同一域名如
www.test.com,如果登陆什么用户,只要session保存在有效时间内,那用户的session都一样.但打开test.com,虽然访问的是一个页面,但session变了.
上面测试可以说好像与用户中的session关系不大,但第一个测试中我用test直接进了后台,那原来我用浏览器退出来的时候,保存了session是错误的,但到底是保存了什么呢?所以我怀疑到了session("getcode"),难道与他有关吗?
admin_logout.asp的代码为
<%
session("flag")=""
response.redirect("index.asp")
%>
这样就退了后台管理,其中session("flag")是关键因素了.
admin_index.asp中有一句
if not dvbbs.master or session("flag")="" then
call admin_login()
可以得知验证的关键为是否为管理员还有session("flag"), 这样的话,管理员我们可以欺骗,反正他又没说要密码,那session("flag")呢。。。
思路还有很多错误,请大家指证:)