来源:http://www.hackblog.com/more.asp?name=lsaint
6 b5 ?& {! P( w; x, A% O 现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。
' \2 P% p! S- d& u2 Y* t( f- G" s$ ]. N* H3 Y3 k/ i
访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机 ( ?9 y. a1 {8 |3 G) N4 j2 p
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件
2 t; ~* F; s0 l
9 W1 a8 a* s* ~3 @: }. o8 z. K! dview-source:查看web代码
/ L6 [6 y: M' ^$ q总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入 5 m, Z" x7 p3 }( R0 m) r
and 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1
: v. E7 S: u0 J4 ]1'or'1=16 \" ~7 b9 ]& k
'or'='or'
! \% V* P/ B) |; g
6 C" m4 w6 g: e5 n( G6 y( l8 g' Yselect语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作
8 F3 m4 i/ L9 P' V) @2 xsql="select * from admin where username="&user&" and password="&pwd&"" ) y- e: p! h# Z, T9 D: d# E
sql="select * from admin where username='111'or'1=1' and password='pass'9 D6 \4 X- [; {7 y4 ?0 |( s% x6 r1 ?
sql="select * from admin where username='1'or'1'='1' and password='pass' p h: C; G! ^7 Y0 r
6 t a* p+ S( B/ G2 i! J6 {开始菜单->运行->iexpress(输入运行这个命令)/ H% n; y, [* M" w, b9 R, D$ i
然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~
2 b+ Z" _0 s. r: G只要你合并的文件不被杀合并器就不会被杀~
L- }$ }& [; G: D5 Xc:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压 + Z C8 h) T1 q% R7 w9 J2 ]3 F
! g P2 a7 A ?7 R. v" D
可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上
% j* N, P0 b) Z4 w2 M <!--#include virtual="/inc/comm/adovbs.inc"-->
2 j' A4 m& n% f P$ i0 F 就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 : h% p2 o M( Z% r
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp 6 U/ ^; J$ P7 J* c& P4 I* s. Y
<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp
) I1 q5 K) _+ ?2 |( p2.绝对路径 2 i0 c* y) H: X* y; K6 g
<!--#include virtual="common.asp"--> 默认为根目录下的common.asp/ a9 X9 s h/ C
< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp
& \) V! ^, b9 ?9 |& |% k9 E6 _$ F# R% y' d
<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>6 r" H) v) Q( \; h6 O1 T, @
<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐 0 u* Y! V: n) R" Q# z
telnet x.x.x.x 80
0 |% i: D( k7 G v3 T4 t- X3 b2 n回车两次。 & F* a& M) ^. T8 C' f
cer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用 " x0 _" F! |& d: O
暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径 ) C' H, q% \4 E# q& S5 s
8 k: D0 b7 t! i4 I& Jurl编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c ) W9 ?5 O% u. d8 _1 |* }4 A
, O, h' e2 ]1 _我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了
* D' S0 _, G# f- n& {
$ l8 _; \3 Y4 g+ j/ I" K1 O<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码 K5 u* k$ i: O. X
浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。
4 C( ^& m' n# v* d6 `1 p& ?0 [5 J4 L1 e8 O6 r
RUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现
% X( ~2 @ M4 e5 g7 |# P3 y. Drequest对象对应于HTTP请求,response对象对应于HTTP响应 I$ o: u2 W- x$ h% A# d/ l
End方法会立即停止Active Server Pages的执行和相应结果, S! e( I% E. T
Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法" u& z5 g' x% [9 l' p
■1xx信息:这种状态码主要是实验性的。
+ L, B8 |+ Z" H1 M% y. Z# U■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。 / P% f! M6 z: i- l/ G! M3 m8 @
■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。
/ x4 k ^) N. n- H. m■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。 6 f2 h% a! c- E6 f: J5 Q3 f0 j2 I
5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。
; Q0 [0 z) q& \2 ?在IIS中先执行INCLUDE语句而后才是VB脚本的执行 & }. e# }) k0 X1 l6 l
在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。
5 ` e2 }# O, O% |3 E你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行
' a% b3 W6 p3 k: p8 |4 b |