|
来源:http://www.hackblog.com/more.asp?name=lsaint% o/ a5 H, q2 F: S% Z# j! D8 j
现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。
$ e1 ^' V! z5 I8 r( H& Y: ?& I: A) A6 }9 z1 o, e
访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机
3 G% K; }' o! ?6 C# Y; v9 x先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件
6 }2 n; K" J- p/ I" H( F6 n
4 X3 z" F' B* D9 sview-source:查看web代码 ' o/ V; |* n. T. T
总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入
7 x0 E. |7 g. M2 k1 q- D% xand 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1
9 z, a; b. ` `7 C. }1 Y1'or'1=16 x8 X9 w& K0 f1 A8 N8 W6 N
'or'='or'
z3 y; f! x c8 O, g# |( P1 O7 }- E2 }/ Z; w
select语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作
2 n% ]+ ~3 [7 l/ d# ]' j) V0 Nsql="select * from admin where username="&user&" and password="&pwd&"" 4 S5 }; O; X5 j4 h E; K4 x: P+ @# n
sql="select * from admin where username='111'or'1=1' and password='pass'
. [( u J* j: u6 w1 c2 `sql="select * from admin where username='1'or'1'='1' and password='pass'
B8 q6 n: t9 P3 e1 c" Z$ A% i: S
: w+ l4 h+ _* p4 B; \, v开始菜单->运行->iexpress(输入运行这个命令)
9 ?/ P, R* L& I8 T) S然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~
4 a& Y2 d+ e& N9 ], W' r只要你合并的文件不被杀合并器就不会被杀~
$ K; Y$ q, X! j; C8 yc:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压
6 F. V5 f$ W7 ~ @3 V) ~
( w+ L, D0 F/ l可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上 ! C' T3 d; v/ w; r
<!--#include virtual="/inc/comm/adovbs.inc"-->
- q! ~; s. `1 V- l1 |& x 就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 2 u; [- A/ W7 P3 S4 Y0 x4 M0 N4 Y3 V
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp
& {) P1 V4 U0 Y0 B<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp & p" ^0 R' t% w
2.绝对路径
! i% A7 p9 B7 G7 m$ j$ S/ D/ U<!--#include virtual="common.asp"--> 默认为根目录下的common.asp, p8 r* r6 n, D( a! o
< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp
$ I2 c& p" c8 n4 b: |8 ^2 o
' ]- T& Q1 K* u( c* ^ k5 g) j# O<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>
( W1 o, @5 T: s8 x- r# ?) c<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐 1 N0 N$ M- E. T' n- ?
telnet x.x.x.x 80
3 `0 ]6 ~$ {9 o7 B% c ?回车两次。 2 m1 w% E1 A3 @% w
cer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用
4 [4 d1 V- r. H暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径 5 W9 K& O9 ]9 E8 H
9 V: A2 ?' q% N# Y) ?0 ~6 T6 Furl编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c 1 L2 j5 r( r+ c& ^
. G+ f* W* m V+ V8 e- \ v我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了 & I/ e9 S. V/ }" P( ~% F
6 n3 ^2 b, P( Z1 }& C& ^ a
<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码
4 h3 B- ? D8 y% A8 e* ^浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。 . v- F. A, ?# A- V
* j) o% E6 I8 Q& Z( K, v
RUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现0 J, T0 m9 @& h% B4 B
request对象对应于HTTP请求,response对象对应于HTTP响应
. l! I: c8 A3 M8 U: FEnd方法会立即停止Active Server Pages的执行和相应结果5 h" ?' ~2 c4 v& M7 l
Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法
$ z# m, W2 d* |, m6 ^■1xx信息:这种状态码主要是实验性的。
% z( b$ B9 K6 S$ u; s■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。 $ S2 _; s* j2 _; z& C
■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。
# r0 V5 w& ~4 P" @* p$ p! F! [, |( e■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。 ( B8 ^& j$ K9 o* r2 q1 f8 k7 {
5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。 ) f% ]8 |4 l' X* s& l: m) F; J7 h2 q% z
在IIS中先执行INCLUDE语句而后才是VB脚本的执行 % ^0 [6 f9 U1 S& G
在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。 s$ C* c, H, m- d2 ?7 n
你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行
Z/ ?2 v+ Y2 H" J |