|
来源:http://www.hackblog.com/more.asp?name=lsaint2 z% n: _+ Y/ V4 {& E, N) e: y
现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。 8 X# X- Y1 |! o8 J: \
' a; y8 M7 H! Q
访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机 6 [/ C6 T4 d; p" w
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件 ! N" m- Q+ M% A( }4 Y
2 Q i1 p2 }* M' X& O0 k3 ~9 Q
view-source:查看web代码 ( I$ n. X0 {) {% [) d K- }
总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入
+ L ^& `) i9 `/ N& Xand 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1/ U) @/ y4 I! R" g( h
1'or'1=1+ _- H- ] K/ c: L
'or'='or'
* w( c) C1 M8 E$ x
0 g- p5 H! U' Zselect语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作 6 k' l( {; F2 ^( e
sql="select * from admin where username="&user&" and password="&pwd&""
0 s4 n5 L; \; q% k& u8 _sql="select * from admin where username='111'or'1=1' and password='pass'# E3 T/ U. `; B- C+ K3 i* C
sql="select * from admin where username='1'or'1'='1' and password='pass'
9 f- e$ k+ Z, I- E3 a
: @* P! s3 ^1 H# x开始菜单->运行->iexpress(输入运行这个命令)1 W! i( n9 o/ ^* q S, n7 k+ a
然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~
% G- O2 h8 P. ]: U只要你合并的文件不被杀合并器就不会被杀~ ) v+ C; ~" a y) y3 {% ?/ V
c:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压
. N0 K3 U! |. b# }+ Y2 z& I3 p0 g1 u- d: d' ]# U; [8 E+ d B) i% m
可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上 $ |! Y9 K c7 b9 R) ]1 L
<!--#include virtual="/inc/comm/adovbs.inc"--> + x8 T, x5 r, a5 y; _- D0 [4 j
就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 % W7 l6 {/ Q5 `* M
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp
# M1 E3 d" B. n: ]$ `3 t/ j6 Z8 ]$ y<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp 3 F) Q) O; ]4 o c4 F V# c
2.绝对路径 + t8 g N" P! X7 M' f) B/ X
<!--#include virtual="common.asp"--> 默认为根目录下的common.asp8 [2 S$ F$ Z6 S3 U
< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp 9 L4 a: C/ i& ~* j
8 L: V" G' E2 g1 o6 q
<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>* k8 c" W3 x, c3 k$ m) S/ a
<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐 ! A# d4 J' Z0 m' L y: b8 U' b
telnet x.x.x.x 80/ n) b, [ J: z; l8 N
回车两次。
4 E8 n; { |) M) O: m6 zcer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用
& t5 ^! \) B3 A; T' P0 I暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径 9 n# T. K6 ~- c0 c4 j
- y4 O# A4 X. D( z8 Z* lurl编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c
1 f! a) I" r( ^3 U4 b1 G0 K2 U" V( x: I, S
我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了
4 u& O7 j/ L% C! k W S' N4 j- Z$ q
<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码 , }, R+ J0 ~. n8 [
浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。
0 h- b0 S9 @# {* A( X, g5 J! }) S/ O& X9 m) |) L! H+ B9 Y% ?
RUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现
: \) S& s, F# o% Y, B& h# j0 xrequest对象对应于HTTP请求,response对象对应于HTTP响应9 J- m3 F8 Y+ W; d/ E: M ?
End方法会立即停止Active Server Pages的执行和相应结果
: }# |! X i. WClear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法
/ [% {( f" Z4 k■1xx信息:这种状态码主要是实验性的。
2 ^- }. `9 O( ~+ e) _; M: P■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。
- C% f! O1 X: _■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。 , N% \/ `* \ l# h& L5 C" o9 ^
■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。
( |& k8 {& W5 O/ f5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。
! I" }) X6 m5 x- ~在IIS中先执行INCLUDE语句而后才是VB脚本的执行
5 a' A# G; G% R5 ^& X/ _+ W5 s在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。
7 s% ^. o( H: S# Y你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行
0 O7 T8 ]" @" I6 t |