这个文件的功能是添加管理员账号,大家可以看到在文件的开始用include调用了md5.asp和conn.asp文件,其中md5.asp是加密用的,conn.asp是连接数据库用的;然后就从表单中读取我们输入的管理员账号和密码,并在管理员数据中比较是否有和我们要添加的管理员用户名一样的,若有的话就报错,没有的话就添加我们输入的管理员账号,之后程序会再跳转到addadmin.asp页面。
漏洞的成因是由于这个文件没有任何的权限访问判断,include的md5.asp和conn.asp也没有判断我们是否有权限访问这个文件,导致任何人都可以访问;最要命的是,它的功能是添加管理员并且没有做任何禁止站外提交的防护。如果我们在本地构造一个添加管理员用户的表单,然后再提交给目标网站的adminsave.asp处理,不就可以添加管理员了吗?
为了验证上面的推论是正确的,我用FrontPage做了一个简陋的可以添加管理员账号的页面,用记事本打开,把action=”http://www.target.com/adminsave.asp”换成要测试的站点的URL并保存为HTML,然后在表单中填上要添加的管理员账号和密码就可以了,如图4所示。

看到那个警告框了吗?大家可不要被它给骗了,这是由于adminsave.asp文件的最后有一句“Response.Redirect "addadmin.asp"”造成的结果。而addadmin.asp中有个session("flag")>1判断了是否是管理员的权限,从程序的代码中知道,只有用管理员账号登录成功后才能得到Session值的,我们没有登录上哪有Session呀,当然会非法了。不过没关系,因为我们添加的管理员已经成功了。测试官方的方法也是一样的,只是官方用的商业版4.0的默认后台给修改了而已,不过我有上面利用防注入写进去的海洋一句话木马,传个大马上去找到了后台,不然还真没有办法在官方测试了。在action后写上官方的adminsave.asp地址,在表单中填上Zero_cold的账号后点确定,用Zero_cold账号成功地登录了官方后台,如图5所示。

这个程序的后台功能非常的强大,网站信息配置里可以设定上传选项,还有数据库备份功能(官方的4.0版把这个功能删除了)。至于用超级管理员账号进入后台怎么得到WebShell,我想不用我再说了吧?
剩下的事情,大家就自己搜索关键字测试吧,网上采用这套系统的网站相当多,我在官方随便复制个关键字就搜出很多页面出来,还请大家测试的时候不要搞破坏哦。加上上面的SQL防注入系统,我们可以拿到WebShell的途径就有两种了,大家测试的时候可以根据自己的具体情况选择。至于我做的那个提交页面,大家若不嫌丑陋的话,就凑合着用吧。
我自己测试的是3.0增强版的,官方使用的则是商业版4.0的。由于我没有商业版程序,就没有看具体的变化在哪里,但从测试结果来看,商业版也是存在这个漏洞的,看来程序的作者还是太疏忽了。目前发现的程序漏洞我已经联系了官方,还在使用这套程序的朋友可以把防注入程序的数据库地址修改一下或做相应的防下载处理,并在adminsave.asp文件中加上“处理 SSI 文件时出错
”来判断管理员的Session,或者是把adminsave.asp里的代码整合在addadmin.asp文件中,就可以防止本地提交随意添加超级管理员账号了。
上一页 1 2