一,前言
有一段日子没有露面了,有人说我鲨鱼已经回家开面包车了,我笑了笑我把他和面包车一起送到了非洲,没钱人的生活往往就是这么朴实无华,且枯燥!
今天一大早来到了公司想起了以前做DBA的生活,想起天天写触发器和存储过程的日子,不经意间裆部有了些湿润,我从椅子上站起来抖了抖身子,突然灵光一闪,如果数据库触发器和渗透结合会产生什么样的火花呢?
二,触发器
什么是触发器,简单来说是一种特殊类型的存储过程,不由用户直接调用。它在指定的表中的数据发生变化时自动生效。唤醒调用触发器以响应 INSERT、UPDATE 或 DELETE 语句。他可以查询其它表,并可以包含复杂的Transact-SQL语句。
修改、删除触发器:
alter trigger 触发器名 //修改触发器
drop trigger 触发器名 //删除触发器
创建触发器:
create trigger //触发器名
on //表名
after delete /insert /update //可以对delete insert update 等操作设置触发器
as 触发器要执行的操作
三,SQL操作监听
当我们不了解代码是如构建SQL语句进行查询,或者说不了解数据库每个表的关联和结构时候我们就需要用到监听器,直接上操作!
输入我们需要监听的数据库名然后运行即可监听,所有对此数据库的SQL数据操作!
我随便搭了个web系统并注册了一个名为admin1的账号,进入个人中心进行修改个人资料!
监听器监听到我们修改个人资料,数据库先是执行了几条查询语句,然后进了UPDATE修改个人信息。
四,简单实验
我们开始编写触发器,目标就是当我们修改个人资料的时候,数据库去执行系统命令,我们这里使用nc反弹shell。
整体思路就是,当我们把自己邮箱改为[email protected] 触发器IF判断为true 则执行xp_cmdshell 去执行nc.
邮箱修改为[email protected]的一瞬间,直接收到数据库服务器反弹回来的shell。
五,实验升级
我们能不能控制执行的命令呢?我们在上次代码上进行修改尝试控制执行的命令!
我又多定义了一个参数@Cmd 来接受admin1用户手机号的值。判断邮箱是否为[email protected] 如果为true,则通过xp_cmdshell 执行@Cmd 的值!
可以看到我们修改后执行了手机号选项里输入的值!
六,结束语
实战中可能比较鸡肋,但也不可否认这也是一种手法吧!如果你们笑话我,集体送非洲!!
本文作者:重生信息安全
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/119755.html