|
来源:http://www.hackblog.com/more.asp?name=lsaint3 Z R9 Y+ M, G# P
现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。 Z! J4 J( | z0 W/ _8 y: E q9 Z
8 d) s6 h( \0 D8 N. Z- x访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机
! |% r6 Q$ m* E( S! ~先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件
, S2 V( d; d5 K1 q
0 G0 B; Q* X ~9 m' q1 n. Mview-source:查看web代码
! _/ R9 S1 N# w2 x3 w2 Q0 Y" _总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入 + l/ f' ?$ g8 ]( p0 B- C9 T
and 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='18 `( D) j2 l2 H3 F$ W
1'or'1=1
5 h2 m7 y% u) ~'or'='or'
4 t3 @/ i2 }" a$ h
2 w. J7 N. [# o. zselect语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作 2 n7 T4 J' R0 n. \' v% f
sql="select * from admin where username="&user&" and password="&pwd&"" $ u6 L, `5 w4 _! J: L
sql="select * from admin where username='111'or'1=1' and password='pass'- l. h% R' ?1 v
sql="select * from admin where username='1'or'1'='1' and password='pass' ( R1 ~$ H+ ?2 P& x8 \; a3 c
& o, O$ w# J* w8 k开始菜单->运行->iexpress(输入运行这个命令)
' g2 }4 U9 z3 S7 R1 `& }然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~- X i. c/ e) u4 G
只要你合并的文件不被杀合并器就不会被杀~
% @/ I" Q5 Y- q8 Z* K" |8 Mc:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压 & N i8 ^ p& h+ _
' ]3 `/ w% N9 j
可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上
; e; k% j. @; `' F7 D <!--#include virtual="/inc/comm/adovbs.inc"-->
/ C% f& Y! N4 J; w 就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。
) `- P& m% e; M6 n) }( Q$ n% r; h6 o1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp , ^+ f4 H9 w7 ~2 N
<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp
1 N, r3 D9 x" c/ A2.绝对路径 * U* X( T/ j1 P! Z1 I' B
<!--#include virtual="common.asp"--> 默认为根目录下的common.asp" P$ B1 {& }. q8 w! |3 z. q
< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp
; g, [% f% J: l; x4 W5 i* t; |- _
/ B/ Y2 H1 x9 h. l+ {1 X8 T<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>
: i+ x, _' O: t' P% i! S<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐 t$ o& h) R7 O$ T6 u2 m
telnet x.x.x.x 80
9 Z9 a+ h% l- A/ t7 y回车两次。
4 j8 U( n- G7 Q' |- Hcer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用
4 u! l. L, i' |8 G暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径
$ n7 ^9 b" V) P9 ^ h0 Y0 l+ t4 \) {' Q3 a# L: }
url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c
: t5 U( p/ X8 R
* ^0 W% M8 {2 E我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了
" D6 x% o9 F( C0 f0 U4 o
9 U, q1 @0 m- n<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码
7 x) Z2 ^0 v" s5 u# K浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。 ) g; s4 e1 j! o3 @$ W- f; d
+ }' z8 j* p! Q4 x
RUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现
0 `5 k' x! |! X# @- ]6 ?# @request对象对应于HTTP请求,response对象对应于HTTP响应2 e3 A" M1 ]7 [. X' `) N
End方法会立即停止Active Server Pages的执行和相应结果; M. y& d4 o7 p' N& G' {4 P: t
Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法
3 L7 w1 Z. [1 c" Q) r/ M( ~■1xx信息:这种状态码主要是实验性的。
8 {3 l6 w/ g8 J, D: M■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。 # j* M# V+ z( m! f
■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。
% [, B h' D9 \& d( ]0 h■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。 ) |2 q) A& o2 N! p
5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。
. a+ ?, b6 u/ T+ c, D# j在IIS中先执行INCLUDE语句而后才是VB脚本的执行
. l. t: E' S! a: `3 B# _" M0 Q4 I在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。
9 z, T9 Q2 H+ P0 e, J, _/ W5 P你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行
* m- G' K8 F2 W" h' O3 ^ |