文章 | 入侵攻击 | 安全防御 | 操作系统 | 网站建设 | 网络编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程
论坛 | 黑客军火 | 配服务器 | 黑客情感 | 免费资源 | 美女贴图 | 灌水无罪 | 在线服务 | 会员照片 | 网站首页
 当前位置:主页 >> 技术文摘 >> 入侵攻击 >> 文章内容  
 

 
SQL SERVER的安全隐患――触发器

www.hx99.org 阅读: 时间:2007-06-09 整理:华西黑盟
------------------------------------------------------------------
 文章是我学accp后,写的第一篇安全类文章。
-------------------------------

SQLSERVER的安全隐患――触发器

2006-11-1010:42作者:空虚浪子心[xgc]来源:eNet硅谷动力

  本文献给交我的开发程序启蒙老师――西安兆龙的周老师,和一起学习的AT2Q6101的同学们。

  触发器权限和所有权

  CREATETRIGGER权限默认授予定义触发器的表所有者、sysadmin固定服务器角色成员以及db_owner和db_ddladmin固定数据库角色成员,并且不可转让。

  需要的环境

  本文需要的环境是已经获取了sql服务器的以上其中一个权限,目的是为了留下隐蔽的后门,不被管理员发现。即使发现了也是加密的(可以破解,不过有些管理员不懂,也不会注意,相关信息google下)。

  正文:

  触发器是在对表进行插入(insert)、更新(update)或删除(delete)操作时,自动执行的存储过程。最常见用于执行敏感数据操作时做历史记录。

  本文以动网论坛dvbbs为例,我们已经拿到了db_owner权限(注意:并不是说dvbbs本身有漏洞)。因为只是db_owner权限,所以读者想去执行“xp_cmdshell”,就不再本文范围了,相信读过本文后,只要有系统权限,作个系统的后门也是简单的。先回想一下通常我们使用数据库时要做什么和关心什么。

  为什么要使用触发器作后门

  管理员首先会把sql文件执行下,然后导入mdb的内容,平时使用顶多备份下,还原下。通常不会有人去看触发器的内容,查看触发器可以使用命令“execsp_helptrigger'dv_admin'”,或者在企业管理器中选择“管理触发器”。因为动网根本没有用到触发器,也没有提到触发器,所以动网的管理员不会去看的。于是我们在里面写的内容就相对安全了。

  思路

  触发器主要是用来做历史记录的,当然可以把管理员更改密码和添加用户的历史记录下。放进一个管理员通常不会注意的、普通用户又可以看到的地方。

  动网的密码有md5加过密的,加密的操作是asp程序在服务器上来完成的,等数据库拿到数据的时候已经是加过密的了。但是动网同时把密码以明文方式放入dv_log表中,就给了我们方便。只要拿到dv_log表中l_content字段的内容,然后判断是否管理员在执行敏感操作,后门思路就形成了。

  使用过程――代码解析

  代码片断:创建触发器。

  createtriggerdv_admin_history
  onDv_log
  withencryption
  forinsertas
  as

  触发器需要建立在Dv_log表上,这里放入的是明文密码。我们并不知道管理员密码设置有多长,只能是把里面的有密码的字段内容全部取出。触发器最好是加密的,加密后,管理员即使看到了,也不知道这里是什么东西。在insert(加入)数据时执行触发器。

  取出来的值应该放入一个普通用户能看到的地方,这样只要有了普通用户的权限就可以看到密码。动网数据库中,最大并且可以存放数据的字段管理员通常都会看到。所以必须找出来一个管理员不会看,而其他用户也不会注意的地方。

  我选择放在一个新建用户的用户信息里(以下通称这个用户为“汪财”,亲切点),这样我们登陆时就可以看到了(注意:登陆时有日志的,记录最后登陆ip,大家自己解决)。

  有以下几个字段适于存放:

  1、Userphoto,字段类型:varchar(255)。记录了汪财的照片地址。可以存放小于255的数据。

  2、Usersign,字段类型:varchar(255)。汪财的签名,如果放这里,汪财就不能发贴了,否则后果自负(发贴会显示签名,地球人都能看到)。

  3、Useremail,字段类型:nvarchar(255)。汪财的email,使用时需要转换类型。

  4、Userinfo,字段类型:text。汪财的用户资料。该字段很特殊,有很多“||”,每一对“||”之间都有着不同的含义。动网很懒的,为了避免字段太多,就把一堆信息全都放入一个字段里,用“||”分开,当查询某一项信息时,取出来全部,然后分割下,就是需要的数据了。

  需要解决的问题:

  1、如果都放满了。

  理论上,如果我们看到了第一个字段有了东西,就应该拿笔记下来,然后删除掉。触发器会自动检查大小后继续使用。再次强调下,本文例子针对动网,大家应该具体问题具体分析。

  2、管理员的日志中,有很多日志,怎么判断它就是在记录更改密码。

  在管理员操作用户时,当然会在“user.asp”或者“admin.asp”中操作,所以我们判断条件需要:

  select@passinfo=l_contentfrominsertedwherel_type=1and(l_touser='user.asp'orl_touser='admin.asp')
  在l_touser为user.asp或者admin.asp时,说明管理员在操作(查看,更新,删除)用户或者管理员。在l_type=1时,说明执行了更新操作,l_content字段里面有密码(如果管理员更新了密码,或者新建了帐户)。因此,查询inserted表中的l_content,赋值给@passinfo
  代码片断:更新汪财的usersign字段。

  if(len(@usersign)<150or@usersignisnull)
  beginif(@usersignisnull)
  set@usersign=''
  set@passinfo=@usersign+@passinfo
  updateDv_Usersetusersign=@passinfowhereusername=@username
  committran
  returnend
  end

  首次更新时,汪财的usersign字段里没有内容,而sqlserver里null加任何数都是null,所以需要判断isnull之后,给null赋值为一个空格。其他几个字段的方法和这里大同小异,只是一个转换nvarchar和“||”的组合时多了点。最后判断如果字段内容太多就不再写了,为了提高性能,也可以把最后的判断写在前面,一旦数据过多,就不需要再继续执行了。

  使用过程――使用触发器留后门

  步骤:

  1、本地架设iis,管理员密码:admin,admin999,admin999

  2、注册用户“汪财”。

  3、添加后台用户:kxlzx,密码为:hahaha,前台用户为kxlzx

  4、管理员登陆,修改密码为:admin888

  5、使用“汪财”登陆,查看个人信息。

  使用查询分析器,或者其他可以执行sql的东西,连接到数据库服务器。



  修改bbbbbb为新建的用户名“汪财”,执行代码,就创建了触发器。只能创建一次,如果需要更改,请把代码最前面的createtrigger改为altertrigger。创建后,管理员只要执行了更新用户操作,就会记录到相应的字段里。使用企业管理器查看触发器。



  打开后,显示为:

  /******Encryptedobjectisnottransferable,andscriptcannotbegenerated.******/



  加密的触发器是不可见,管理员并不能知道里面写了什么,十有八九会认为是动网自带的什么东西。

  下面轮到管理员上钩了。

  使用管理员在后台登陆,添加一个后台管理员:kxlzx,密码:cnxhacker.com前台用户:kxlzx。更改管理员自己的密码为:admin888。

  登陆“汪财”,看看个人信息:


  “汪财”的个人照片已经成了:

  username2=kxlzx&password2=cnxhacker.com&username1=kxlzx&isdisp=1&Submit=%CC%ED+%BC%D3oldusername=admin&username2=admin&password2=admin888&AddAcceptIP=&adduser=admin&id=1&Submit=%B8%FC+%D0%C2

  可以看到,里面有两条信息,一个是kxlzx的密码为:cnxhacker.com,一个是admin的密码为admin888。

  如果继续操作管理员,则里面的数据继续增加,直到大于varchar(150),然后转为写入其他字段,以此类推。

  上面仅仅是一个使用例子,触发器的作用很强大,如果可以获得的数据库sa权限,甚至可以执行xp_cmdshell等激情的操作。希望读者不要把本文单纯的当作一个工具,而是作为一个思路,才会有更广阔的空间。

sql文件地址:
   -------------------------------------------------------------------------------------------
  上一篇:在WEB程序中隐藏后门
  下一篇:对校园网的第二次安全检测
   -------------------------------------------------------------------------------------------
用户名:
Email:
评论内容:
 
  精品推荐
最新网吧免费上网方法
五招查出想要知道的IP地址
让星空极速彻底下岗,破解
QQ技术攻略-原来隐藏着这
网吧漏洞-自己加会员卡,丰
简单网站入侵(适合菜鸟)
恶搞!如何将你的QQ性别改
黑客最起码要懂的16个问题
如何利用QQ邮件发木马
我的黑客技术学习方法,仅
你会用Google?估计你会用
10秒钟让你和任意QQ号聊天
简单进网站后台(适合菜鸟)
只需一行代码就能让IE 6崩
菜鸟入门的八种安全工具
网上电影随意看 破解在线
推荐:挖掘鸡使用教程
Radmin密码破解新招
QQ聊天记录文件解密方式
一招就能搜尽所有QQ隐身好
菜鸟挖漏洞,黑站就是这么
电脑菜鸟必懂 常见木马连
找到肉鸡后如何做个好后门
推荐:3389的密码嗅探
2007.12 免费QQ秀
关于我们 | 发展历程 | 在线投稿 | 核心监督 | 友情链接 | 网站地图 | 网站留言 | 联系我们
Copyright © 2004-2007 Www.Hx99.Net
版本:华西黑盟网站系统V5.0 Email:root#hx99.org
中国·西安·宝鸡 请使用IE6.0版本, 分辩率1024×768进行浏览
版权所有 任意抄袭 注意完整
陕ICP备06000444号