|
来源:http://www.hackblog.com/more.asp?name=lsaint% w4 H8 J' I. c
现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。
1 V! ^1 U1 A S: L; G) i* J; J* V5 V- r3 U* y
访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机 9 N$ x1 c; Z: |+ J- C9 B6 F4 F: S# q! n
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件 ( `( ^1 z/ F# O1 l9 q3 `
2 K0 L4 P: l' q$ s- C% e
view-source:查看web代码
5 R" a# }& E F6 a总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入
3 A" `) j3 _2 D' k2 m' ~! ~* d( l( _and 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1
9 }& m; i7 k/ s3 I- u1'or'1=17 E5 i+ ^ b0 a# o! ^/ K! y: X% N
'or'='or' ( Y |2 g" s+ f* O# \' L8 p" ^
2 I& U; h# | @3 S5 w# l P/ Tselect语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作
5 ~% f6 h& ^# \& q! Q2 G- i7 i+ `( asql="select * from admin where username="&user&" and password="&pwd&"" ' f) k, G; x% S3 l0 d& r
sql="select * from admin where username='111'or'1=1' and password='pass'! c! Y) J4 n/ [: ]
sql="select * from admin where username='1'or'1'='1' and password='pass' ' I" W- q! p0 w6 v7 p! f+ K
4 I: Y, ~# x3 P* Q5 p2 P! O) B6 t5 J开始菜单->运行->iexpress(输入运行这个命令)
2 k8 @/ U$ i5 X% Z然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~
4 T# ?2 a3 C3 E/ {+ _# j( a只要你合并的文件不被杀合并器就不会被杀~
' }! _, T, R5 c6 o. q' x3 j7 Pc:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压 ! t8 m8 Q/ c4 z v8 C
( ^# j7 z8 U* O( k2 L. ^3 u
可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上 ' W! G% s6 A: X
<!--#include virtual="/inc/comm/adovbs.inc"--> ) U" e! N8 a' K1 `: P3 t, w
就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 - H H0 S* K# ~9 p& f0 R% b
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp
* [) d$ s6 {( A2 C4 B( q<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp + m8 @) A1 q; I
2.绝对路径
5 F3 z l* Z, B<!--#include virtual="common.asp"--> 默认为根目录下的common.asp$ ~4 ^# r. O I
< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp
- r4 z. G. F) f
" Q9 {; Q% D( x<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>8 f# f5 z& V( q3 o/ c1 [
<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐 0 f8 I" U# N) @; L1 G2 P9 e
telnet x.x.x.x 80
: J5 M( J% o9 q8 a回车两次。
) K8 K% j9 Q4 }7 m6 t0 d6 }/ tcer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用 , y6 {1 X2 ]4 y2 U
暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径 4 C& l4 C# }) N* F# Y7 T. e
7 q4 t6 q' y) l8 L9 x6 n0 }
url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c 4 d3 c1 s6 Y" |1 q
4 a& a: f, q: c; u
我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了 ) O2 j& ~0 e# t* M! \& r
8 Y2 E: g0 h. i<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码
7 O5 s& [3 `1 @9 w4 I浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。
8 U& f1 U+ a6 X$ n+ Q: R
8 O4 ?2 P0 Y- R$ p5 o4 XRUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现
5 Z, P/ g; Q4 E7 hrequest对象对应于HTTP请求,response对象对应于HTTP响应
! X1 T# D( D& ~+ y* i1 U1 [End方法会立即停止Active Server Pages的执行和相应结果
H: W8 ]) X' nClear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法
. L9 d* G1 y2 z' W2 m3 m( x( r■1xx信息:这种状态码主要是实验性的。
% z( {& d9 i! i, C/ Y. u0 A■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。
C/ z5 o6 R6 m$ b: h% d$ N3 z■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。
! K7 Z& f6 N2 J6 {6 e0 b■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。 $ L; V4 D1 K+ {, i: A
5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。 + i$ Q# w T# S$ T; J; k/ Q8 G
在IIS中先执行INCLUDE语句而后才是VB脚本的执行 ; Y7 J1 I, Y( L& k" B# \
在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。4 X! n9 S! R+ @' S" m! m
你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行) Y1 x @2 [/ Q
|