想必大家都知道MSSQL中SA权限是什么,能够说是至高无上。黑客防线前几期
都曾提到过他,也谈了他的危害,今天我就他的危害再谈点儿。我所讲的是配合NBSI上传功能得到WebShell。在讲之前先说几个条件,否则得到Shell是有难度的。
1.存在SQL注入,并且数据库类型是MSSQL。
2.连接数据库的权限必须是SA。
3.后台必须有文档上传的程式。
好了,我们找到一个网址/Article/UploadFiles/200609/20060918171804761.gif 这下我们敢肯定后台有上传文档的功能了。下面做什么呢?晕,找出该网站所在的路径呀。这个嘛就得全靠NBSI的NB Commander(NB Tree_List)功能了(在这里我推荐大家用NB Commander,为什么呢?看完文章就知道了),但是找出网站所在的真实路径需要花一定的时间,那就看您有没有耐心了。我敢说只要有耐心,肯定能找出网站所在的真实路径。这里我找到了这个站点所在的路径D:/96369,接着就是后台了,很快就得到Admin/login.asp,接下来就是账号和密码的猜解了。但是我这次猜解出现了问题。说什么也弄不出他的账号和密码,难道都是空的?我不相信,就试着登录了一下,结果失败了。于是从这开始,NB Commander功能就显得很重要了(因为大家都知道,列目录NB Command和NB Tree_List都能实现),我找到文档conn.asp,用type D:/96369/admin/logining.asp命令看了看源代码。

够狠吧!读了读代码没有问题呀!就是用的admin表字段也相同,不多说了,谁能知道其中的原因?请告诉俺一下,也让俺这只菜鸟走出困惑。进不了后台怎么上传图片呢?这里我用NBSI的上传功能,我试过了,没有成功。因为我传上去后,看到代码每行都重复三次,也不知是为什么,就是用臭要饭的Getwebshell也是同样的结果。
我想有了,看看他的Session是怎么验证的,又是个type D:/96369/admin/quanxian.asp。通过分析很快就明白了,他给Session(“wsl”)赋了一个值为1,哈哈!我写了一个很简单的程式<%Session(“wsl”) = 1%>。用NBSI的上传功能传了上去,我想不管<%Session(“wsl”) = 1%>重复几次都是正确的(这里您又会想到什么呢?假如密码是MD5的,我们没有必要去爆破了,弄个session就ok了),传上去保存为1.asp,然后我访问http://www.69369.com/admin/1.asp,接着访问http://www.69369.com/admin/admin_index.asp,OK,Very Good。就这样进入了后台。本地测试。

小提示:Session变量和cookies是同一类型的。假如某用户将浏览器配置为不兼容任何cookie,那么该用户就无法使用这个Session变量! 当一个用户访问某页面时,每个Session变量的运行环境便自动生成,这些Session变量可在用户离开该页面后仍保留20分钟!(事实上,这些变量一直可保留至“timeout”。“timeout”的时间长短由Web服务器管理员设定。一些站点上的变量仅维持了3分钟,一些则为10分钟,更有一些则保留至默认值20分钟。)所以,假如在Session中置入了较大的对象(如ADO recordsets,connections, 等等),那就有麻烦了!随着站点访问量的增大,服务器将会因此而无法正常运行!
因为创建Session变量有很大的随意性,可随时调用,无需研发者做精确地处理,所以,过度使用session变量将会导致代码不可读而且不好维护。


这样我找到上传图片的地方,把asp木马改成.gif传了上去,记住了上传后的名字,这里是uploadpic/20056171430123.gif,那么您会想到什么呢?哈哈我想起来了,把图片copy成.asp的,或重命名成.asp的。
好了,到这里我们的马就算是上去了,至于以后的事情就不提了。
总结:SA的确给我们带来了很大危害,所以程式员在连接MSSQL数据库的时候千万不能用他,否则服务器成为肉鸡的可能性很很的大。更有,MSSQL 的扩展存储功能,用不到他就删除,留着就成了黑客的利器。