|
来源:http://www.hackblog.com/more.asp?name=lsaint
$ U2 y# Z9 x ~4 D8 w 现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。
" m1 ], Q% e0 V$ C# B m3 n5 E; K/ ~% F+ }
访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机
2 U% b9 Y8 Z1 n5 @- }先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件
: D8 M' v6 Q, V( @8 ~ U2 [0 A1 V* p: }# u/ {" a
view-source:查看web代码
5 Y$ a2 D0 \- V# H0 y总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入 * m# r/ E5 W' A( x5 N$ Q
and 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='17 W: X1 w5 c. _$ ^' H) ` m, {! c
1'or'1=14 o' K6 s- q; U2 x# {! A2 n1 i$ ?
'or'='or'
4 H2 v x3 N( f, g% r& W7 d5 r% M! i5 z3 o
select语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作 0 S4 }5 h2 Y) c1 P* b/ V& E( H
sql="select * from admin where username="&user&" and password="&pwd&"" 6 x1 }% l9 d" g& t% j5 q* |5 i
sql="select * from admin where username='111'or'1=1' and password='pass'6 r7 e0 z$ z p% P) B
sql="select * from admin where username='1'or'1'='1' and password='pass'
! e. c6 }1 g) x5 N5 _9 o5 B7 p1 ?, z$ N4 |: E1 Q
开始菜单->运行->iexpress(输入运行这个命令)& e) W& ~) H3 |. s) f9 T
然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~
) H+ J/ G+ N1 G4 F8 E3 e只要你合并的文件不被杀合并器就不会被杀~
% | Q* \4 j" _- C, O' c. n% sc:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压
9 a# H9 D7 J6 K/ L
0 r/ T2 E2 Y6 w& k, Q" m" V8 y: j0 M可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上 6 q- o4 j# z* ~$ T* {
<!--#include virtual="/inc/comm/adovbs.inc"--> 7 h7 ]' G6 |& s
就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。
' O" O. p* v+ E1 w" N; d1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp
7 Y) ^& ` C' o- c; a: j. s2 D<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp ( Y; R; l: V/ \3 l4 Z @
2.绝对路径
# ~+ |; H. v8 D) Y" L<!--#include virtual="common.asp"--> 默认为根目录下的common.asp( m6 h9 R6 u* K( v
< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp
- S* i. P+ @: F" |% d4 l5 x: d
2 B6 S# }- r8 {; \2 L<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>% e2 C( L% l! U
<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐
Y) ?2 t5 y& |8 z# gtelnet x.x.x.x 800 C# k" Q/ {3 d3 n0 @
回车两次。
( h4 [/ b Z7 m9 _" r( n- _cer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用 ) g [* P4 v: j4 |
暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径
5 n7 d; p, [- N4 ?; |( e) X/ m2 {
url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c , ~' U5 o" B0 R. B' z" b9 C
3 Q# I) e+ e0 G. c5 s我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了
# d7 ?' W# {- t {8 m
5 B" h7 i* h5 A, D<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码
: W( p8 F9 g Y& t; Z' }" K5 h8 x浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。 ; X, m$ K4 B8 |& [6 v
" Z4 x1 R/ o0 S4 z! pRUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现, ` y- k4 _7 A R1 K, N
request对象对应于HTTP请求,response对象对应于HTTP响应; Y6 y9 k. x2 n% ]( X- s' L
End方法会立即停止Active Server Pages的执行和相应结果3 y0 y" Q6 w0 k4 q
Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法% v3 V9 ~ W: {6 G+ k. k- r3 U
■1xx信息:这种状态码主要是实验性的。 4 {/ p6 f- y$ f* N2 @* c Z
■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。
v' ^' v4 ?0 N' L* y- v■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。
# M' }9 q0 q0 W, p■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。 # a- m) a2 _: r" ]( A% o+ ?
5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。
' j4 l- s9 ~3 A6 q' ~8 P( f在IIS中先执行INCLUDE语句而后才是VB脚本的执行
+ n9 o; p. N |9 p: T5 h9 n% y X' z在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。% a: |1 I9 m' e" f4 N
你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行8 G; o" j3 m7 D; F2 L, K9 U9 n+ x c
|