|
来源:http://www.hackblog.com/more.asp?name=lsaint
6 Y" G. p$ b6 r4 o/ u5 [* @ 现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。
: ~7 T- _) z0 E# M. \6 S
8 }3 V# h- Q; ]$ K! b+ |访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机
7 r$ k. x/ |: ~" \先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件 ' y3 }; G6 K( ?0 u/ {
: V' O3 N9 e6 K6 [3 Y
view-source:查看web代码 , b3 Y I- a5 f j5 o; O0 y
总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入 ( K/ [' `$ v5 F# P R4 D9 j! t
and 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1( b1 M; t! M0 _- p
1'or'1=1
4 Y; ?7 v! @$ v; `( Q! g* J( V& }'or'='or' % T! F* ?( L; E7 L) |
" O# v b, U+ G( P7 X4 ]
select语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作 4 K, U1 x) n6 J- @; G5 L# t& b
sql="select * from admin where username="&user&" and password="&pwd&""
/ K/ N5 A1 R$ s1 gsql="select * from admin where username='111'or'1=1' and password='pass'
8 y8 t9 {6 T7 n* l! B% Usql="select * from admin where username='1'or'1'='1' and password='pass' 3 C: b) t$ C' ^- d* ^, `
4 g8 M5 V1 [+ T7 C% ]; S# m开始菜单->运行->iexpress(输入运行这个命令)" w- d8 d: O$ g" ~( S m5 k; R
然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~
" j: i7 ?8 }6 I只要你合并的文件不被杀合并器就不会被杀~
0 [( h/ }. C6 J9 p5 Bc:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压
% c) x" o, N, R2 R/ D. ^) b
4 o9 S0 ^" L2 n/ P可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上 : ?- `7 O3 d! s) e- g
<!--#include virtual="/inc/comm/adovbs.inc"--> 0 i1 U* o& O' u% h
就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 $ K# w/ U4 b/ e* ]1 w8 b# Q! u J
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp 4 g5 j4 R8 l- u1 i( j
<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp
4 |& M$ I' z. f2.绝对路径
- d! S. P) b3 f* ]7 b z<!--#include virtual="common.asp"--> 默认为根目录下的common.asp
8 e' x% h5 ^9 `" X" h0 b, t< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp ; q# `3 v9 P$ i* F
+ I' _0 t4 f3 F/ K
<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>
. t0 y6 D+ R% _: \<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐 & l% w- g2 l: o& r
telnet x.x.x.x 80: g& m9 @9 U m% ]2 N
回车两次。
# c' Q; m/ M% _cer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用
+ R0 X O }8 @/ t+ {. {暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径 ; ~# S3 q+ h) C, @: S7 X
- ~/ Q, Q* A8 j. g+ q' yurl编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c
& I% O+ g8 W) m3 G0 B
5 t$ V2 L" \" A2 p" S6 p* M l我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了
, w. k4 m0 e6 F" B# s! [) i$ Q) g% Q- g6 L# {
<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码
" f& V; \ V# D" k浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。 9 O% w& Y) u3 M3 T, v
6 @' [( c4 V0 u. b: O: U" f
RUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现
X1 q& P! e$ V# I. }5 p) b& rrequest对象对应于HTTP请求,response对象对应于HTTP响应
. l) H* j% }" x/ T, K% X' ^End方法会立即停止Active Server Pages的执行和相应结果/ X& @" c: A- [+ D) f! P4 ~; W3 W
Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法$ o- J7 i' u; M9 ~* T, g8 a: z) p
■1xx信息:这种状态码主要是实验性的。
9 l; I% \7 ]# j% r; ?8 {& V■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。 4 w1 @0 Q: J6 v, }
■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。 ) H, e5 E9 S' q7 R
■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。
9 @* A# }8 h. j# ^* m' Y5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。 / H7 y) ]2 T$ D. B7 E9 {& K' M" u! R6 v" b
在IIS中先执行INCLUDE语句而后才是VB脚本的执行 * ?! ]3 H: ^3 S% J
在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。
8 K9 C5 u$ j/ j3 R9 ]你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行: F7 r/ G' n1 B8 O) o9 K2 V
|