sdcms2.0后台绕过直接进入
By Cr4zy
Islogin //判断登录的方法
sub islogin()
if sdcms.strlen(adminid)=0 or sdcms.strlen(adminname)=0 then
dim t0,t1,t2
t0=sdcms.getint(sdcms.loadcookie("adminid"),0) loadcookie
t1=sdcms.loadcookie("islogin")
t2=sdcms.loadcookie("loginkey")
if sdcms.strlen(t0)=0 or sdcms.strlen(t1)=0 or sdcms.strlen(t2)<>50 then '这里判断很坑爹 sdcms.strlen(t2)<>50 loginkey 没有任何要求 只需要输入50个即可往下执行
//
sdcms.go "login.asp?act=out"
exit sub
else
dim data
data=sdcms.db.dbload(1,"adminid,adminname,adminpass,islock,groupid,g.pagelever,g.catearray,g.catelever","sd_admin u left join sd_admin_group g on u.groupid=g.id","adminid="&t0&"","") '根据管理员ID查询 ID可控
if ubound(data)<0 then
sdcms.go "login.asp?act=out"
exit sub
else
if instr(data(1,0)&data(2,0),sdcms.decrypt(t1,t2))<0 or data(3,0)=0 then
sdcms.go "login.asp?act=out"
exit sub
else
adminid=data(0,0)
adminname=data(1,0)
admin_page_lever=data(5,0)
admin_cate_array=data(6,0)
admin_cate_lever=data(7,0)
if sdcms.strlen(admin_page_lever)=0 then admin_page_lever=0
if sdcms.strlen(admin_cate_array)=0 then admin_cate_array=0
if sdcms.strlen(admin_cate_lever)=0 then admin_cate_lever=0
if clng(admingroupid)<>0 then
admin_lever_where=" and menuid in("&admin_page_lever&")"
end if
sdcms.setsession "adminid",adminid
sdcms.setsession "adminname",adminname
sdcms.setsession "admingroupid",data(4,0)
end if
end if
end if
else
data=sdcms.db.dbload(1,"g.pagelever,g.catearray,g.catelever","sd_admin u left join sd_admin_group g on u.groupid=g.id","adminid="&adminid&"","")
if ubound(data)<0 then
sdcms.go "login.asp?act=out"
exit sub
else
admin_page_lever=data(0,0)
admin_cate_array=data(1,0)
admin_cate_lever=data(2,0)
if sdcms.strlen(admin_page_lever)=0 then admin_page_lever=0
if sdcms.strlen(admin_cate_array)=0 then admin_cate_array=0
if sdcms.strlen(admin_cate_lever)=0 then admin_cate_lever=0
if clng(admingroupid)<>0 then
admin_lever_where=" and menuid in("&admin_page_lever&")"
end if
end if
end if
end sub
public function loadcookie(t0)
loadcookie=request.cookies(prefix&t0)
end function
public sub setcookie(byval t0,byval t1)
response.cookies(prefix&t0)=t1
end sub
prefix
'变量前缀,如一个空间下多次使用本程序的话,请每个程序配置不同的值
dim prefix
prefix="1Jb8Ob"
'这个值访问一下admin/login.asp?act=out 便可得到 在COOKIE里
sub out
sdcms.setsession "adminid",""
sdcms.setsession "adminname",""
sdcms.setsession "admingroupid",""
sdcms.setcookie "adminid",""
sdcms.setcookie "loginkey",""
sdcms.setcookie "islogin",""
sdcms.go "login.asp"
end sub
设置cookie prefixloginkey 50个字符 prefixislogin 随意 循环下prefixadminid 即可 默认1 然后访问后台
至于后台地址 自己想办法 哈哈
修复方案
Loginkey 补上 应该是漏掉了
唉 第一次发这种贴就被盗版权了
评论10次
后台地址 不好找啊
测试下,感谢分享!
来参观下,漏洞。
mark
感谢分享~~~
嗯 刚看了下其他的版本 确实不一样 应该没有这个漏洞 这套xi统确实安全
很早就有了吖,有利用工具
其他版本应该没有这个漏洞, 2.0是他们新出的版本,,代码什么都新的 感觉有点多于了。以前1。3挺不错的。现在搞的有点复杂化了。他们程序算比较安全,,出这个洞 真没想到。
这个漏洞,,,确实,,,无语。。。、
沙发咯!