黑客谈 MSSQL SA权限入侵的感悟
作者:korn 来源:赛迪网 发布时间:2008-03-20 10:18:00
想必大家都知道MSSQL中SA权限是什么,可以说是至高无上。今天我就它的危害再谈点儿,我所讲的是配合NBSI上传功能得到WebShell。在讲之前先说几个条件,否则得到Shell是有难度的。
1、存在SQL注入,并且数据库类型是MSSQL。
2、连接数据库的权限必须是SA。
3、后台必须有文件上传的程序。
好了,我们找到一个网址hxxp://www.6x36x.com/fangchan/listpro.asp?id=53,用NBSI一会就一目了然了。
很好,数据库类型是MSSQL,权限是SA,再看看第三个条件满足不满足。找到页面中的文章(新闻),看看里面的图片的地址是什么。好!一看就明白了hxxp://www.6x36x.com/admin/uploadpic/2xx5042823082994329.gif,你明白了吗?特别是2xx5042823082994329.gif 这下我们敢肯定后台有上传文件的功能了。下面做什么呢?晕,找出该网站所在的路径呀。这个嘛就得全靠NBSI的NB Commander(NB Tree_List)功能了(在这里我推荐大家用NB Commander,为什么呢?看完文章就知道了),不过找出网站所在的真实路径需要花一定的时间,那就看你有没有耐心了。我敢说只要有耐心,肯定能找出网站所在的真实路径。这里我找到了这个站点所在的路径D:\9x3x9,接着就是后台了,很快就得到Admin/login.asp,接下来就是账号和密码的猜解了。不过我这次猜解出现了问题。说什么也弄不出他的账号和密码,难道都是空的?我不相信,就试着登录了一下,结果失败了。于是从这开始,NB Commander功能就显得非常重要了(因为大家都知道,列目录NB Command和NB Tree_List都能实现),我找到文件conn.asp,用type D:\9x3x9\admin\logining.asp命令看了看源代码。
够狠吧!读了读代码没有问题呀!就是用的admin表字段也一样,不多说了,谁能知道其中的原因?请告诉俺一下,也让俺这只菜鸟走出困惑。进不了后台怎么上传图片呢?这里我用NBSI的上传功能,我试过了,没有成功。因为我传上去后,看到代码每行都重复三次,也不知是为什么,就是用臭要饭的Getwebshell也是同样的结果。
我想有了,看看它的Session是怎么验证的,又是一个type D:\9x3x9\admin\quanxian.asp。通过分析很快就明白了,它给Session(“wsl”)赋了一个值为1,哈哈!我写了一个非常简单的程序。用NBSI的上传功能传了上去,我想不管重复几次都是正确的(这里你又会想到什么呢?如果密码是MD5的,我们没有必要去爆破了,弄个session就ok了),传上去保存为1.asp,然后我访问hxxp://www.6x36x.com/admin/1.asp,接着访问hxxp://www.6x36x.com/admin/admin_index.asp,就这样进入了后台,本地测试。
小提示:Session变量和cookies是同一类型的。如果某用户将浏览器设置为不兼容任何cookie,那么该用户就无法使用这个Session变量! 当一个用户访问某页面时,每个Session变量的运行环境便自动生成,这些Session变量可在用户离开该页面后仍保留20分钟!(事实上,这些变量一直可保留至“timeout”。“timeout”的时间长短由Web服务器管理员设定。一些站点上的变量仅维持了3分钟,一些则为10分钟,还有一些则保留至默认值20分钟。)所以,如果在Session中置入了较大的对象(如ADO recordsets,connections, 等等),那就有麻烦了!随着站点访问量的增大,服务器将会因此而无法正常运行!
因为创建Session变量有很大的随意性,可随时调用,不需要开发者做精确地处理。所以,过度使用session变量将会导致代码不可读而且不好维护。
这样我找到上传图片的地方,把asp木马改成.gif传了上去,记住了上传后的名字,这里是uploadpic\2xx56171430123.gif,那么你会想到什么呢?哈哈我想起来了,把图片copy成.asp的,或者重命名成.asp的。
好了,到这里我们的马就算是上去了,至于以后的事情就不提了。
总结:SA的确给我们带来了很大危害,所以程序员在连接MSSQL数据库的时候千万不能用它,否则服务器成为肉鸡的可能性非常非常的大。还有,MSSQL 的扩展存储功能,用不到它就删除,留着就成了黑客的利器。


猜你喜欢
- User Centered Design 以用户为中心的设计,一说到这个很多人马上想到互联网和软件的设计,因为在IT、互联网行业提得最多。其
- 前言今天笔者想和大家来聊聊python接口自动化如何使用requests库发送http请求,废话呢笔者就不多说了,直接进入正题。一、requ
- 错误提示Invalid byte 1 of 1-byte UTF-8 sequence原因分析在中文版的window下java的默认的编码为
- zyw147 提出问题:ASP读取指定xml 的节点?怎么用ASP《不是JS》取出指定的节点? 例如我想取出北京,我在ASP客户端提交的是
- 对于一个多元函数 用牛顿法求其极小值的迭代格式为其中 为函数 的梯度向量, 为函数 的Hesse(Hessian)矩阵。上述牛顿法
- 如下所示:# 计算一个字符串中所有数字的和def numsum(s):sum = 0
- GUID(Global unique identifier)全局唯一标识符,它是由网卡上的标识数字(每个网卡都有唯一的标
- 根据django官方文档建议,开发过程中会把生成的migrations提交到git中。由于各种原因,会有一些场景需要重置migrations
- 一、环境介绍Python版本 : Python3.8开发工具 : Pycharm 21第三方库 : requests还会用到的是 Pytho
- 查看是否启用了日志mysql>show variables like 'log_bin';怎样知道当前的日志mysql
- 我对这两种连接方式认识不够深,似乎朋友们对此也没有定论。请问哪一种更好呢?DSN是采用数据源的连接方式,其使用方法是: Conn.
- 一看,C盘只有不到2M可用空间,一查原因,sqlserver安装路径下的log目录文件占了好大,5G多, 于是上网搜了下,解决了: 把与sq
- #_*_coding:utf_8_import sysimport osclass Graph(): d
- 什么是装饰器从字面意思上来看,装饰器是用来装饰其他东西的工具。在python中装饰器分为函数装饰器和类装饰器。简而言之,函数装饰器是用来装饰
- 在你的程序初始化时使用如下代码: <?php $Php2Html_FileUrl = $_SERVER["REQU
- 本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的陷阱重现我们就用实际的举例来演示我们今天所
- 但凡介绍数据库连接池的文章,都会说“数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理
- 背景:我们在使用数据库的过程中,很多时候要追求性能,特别在处理大批量数据的时候更希望快速处理。那么对SQL SERVER而言,数据库实现大批
- 从cnblogs看到的代码,作者的代码随便不兼容firefox但,有助于大家学习为什么下面的代码兼容了firefox,大家可以对比下,有助于
- 使用mysql二进制方式启动连接您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。实例以下是从命令行中连接m