|
来源:http://www.hackblog.com/more.asp?name=lsaint C8 M3 U# r2 E/ \; f/ ]
现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。 9 X9 w% o# P5 [$ D5 M. \; z4 d
& B% j6 ~7 d0 q! g" N3 w% ^访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机
% ^6 [/ p8 q3 L先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件
* K4 S+ X) h5 A8 ?/ t. |4 a4 w G0 a! D: j$ a
view-source:查看web代码
C. a1 Y/ h* `8 A9 r- _总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入 & }0 b2 E% L8 X6 b9 @
and 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1% ~( v# G" ~" u$ Y% T
1'or'1=1
) }2 q+ e( [5 z6 `! L$ V'or'='or'
4 X% y6 M+ Z6 |& ?0 d- `5 C9 l, L
* W. U/ y: E. rselect语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作
A& \0 c# E, tsql="select * from admin where username="&user&" and password="&pwd&""
+ D9 V4 _: } G1 }sql="select * from admin where username='111'or'1=1' and password='pass'6 ^/ c1 h' F ]; b: _# J9 C+ W/ b& b3 l
sql="select * from admin where username='1'or'1'='1' and password='pass'
8 t2 {1 J% P/ X! c, [! C1 P
* R3 [2 W) D2 `2 n F开始菜单->运行->iexpress(输入运行这个命令). P5 H7 s( w7 |* |; G
然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~8 @: C" V/ ?- e* k. t
只要你合并的文件不被杀合并器就不会被杀~ & W, M! q: P( ]% y& x5 X2 K" c
c:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压 3 t+ O6 ?7 o+ ]/ |
" Q1 f1 z0 S" E2 u) o O
可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上
w, Z5 M- S2 P! k, r <!--#include virtual="/inc/comm/adovbs.inc"--> 7 {' D8 l/ k5 F" g+ o4 T0 f
就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 . @6 [+ k* i j2 X% [$ [
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp 9 q3 W. \+ z4 r: M
<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp 1 f. b: M7 u0 F# W( {9 [
2.绝对路径 4 n$ y" ~# _* Q& W6 M7 N1 O
<!--#include virtual="common.asp"--> 默认为根目录下的common.asp
9 |! N0 ^' u/ i" J1 C, B9 I6 q; X< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp , A- z- l5 _. u0 D; ~. }
9 R0 u7 D% R8 ^/ a7 ~$ \5 N% [
<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>( d6 p6 X' B* s( f) Q# I7 V) J
<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐
3 r* i' _. ?. p/ }telnet x.x.x.x 80
5 g Q7 `. X8 ^7 x4 L; V回车两次。
' A& [5 K- k3 J# Xcer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用 1 h; |$ e$ L! k+ }7 m/ K
暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径
5 L; R& _5 q9 s: E' t; H7 Q1 T! h: {) S4 n: D
url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c & c* T2 B1 q6 ~2 w
8 Z. t+ ]6 q% \8 f4 o8 B# u
我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了
2 k2 `3 j N _4 _# u& R
0 a1 T# R$ {- R! a<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码 ! L0 f0 t' ^, ?) d
浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。 * y y$ w5 ~) i4 k) S% E3 f8 t
" L. i ]" R+ _
RUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现$ H v3 c2 |( f$ Z1 S, ?9 u
request对象对应于HTTP请求,response对象对应于HTTP响应
) @1 x% Q. N9 I2 w+ QEnd方法会立即停止Active Server Pages的执行和相应结果3 H/ @+ c# l, B+ x" |
Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法
5 v( i& C% b. S9 n1 V■1xx信息:这种状态码主要是实验性的。 ' j2 f5 S1 F2 j3 z& z, S6 ]
■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。
6 o" Q! R% x/ j( {■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。
% x0 `( }$ G- x! t; S■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。
, N/ o) A( g2 v8 K, h; l5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。 / C7 \- N+ F- H( o" p0 A- g
在IIS中先执行INCLUDE语句而后才是VB脚本的执行 - I! }! s4 {. r& {$ l
在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。
6 `6 l- O$ M |* q- \8 c你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行
) s, x4 {. t8 s% Y4 @ |