|
来源:http://www.hackblog.com/more.asp?name=lsaint
( j8 _0 ^* H2 ?6 M 现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。
- F+ b" x# D, B- u" j# t1 v# C' X6 M( p# r, y" ^% Q
访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机
' ]( o. Q# o! P先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件 6 C0 ?4 {& r6 k' N1 u5 ]6 G6 h
/ z6 s+ s, Q8 l& ~8 n" y1 X6 z) ^view-source:查看web代码 $ W2 U; O. I! J/ f: d
总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入
! F0 ]5 j9 @: `and 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1( X& t- Y; Z6 C% n( Z
1'or'1=1/ l% U1 G9 k; V" D+ A4 h
'or'='or'
f. N v9 ^: _8 P
2 b- g4 Z# r8 u& @7 ^9 vselect语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作 - H5 w# r$ A. x' N) I6 A# @
sql="select * from admin where username="&user&" and password="&pwd&""
9 g% t% E% X5 N. X: o7 hsql="select * from admin where username='111'or'1=1' and password='pass'
8 n6 @8 ?" Z3 f+ v8 R Vsql="select * from admin where username='1'or'1'='1' and password='pass'
$ `( @+ }9 Y* o# r! r- W4 i+ \1 I* S" F8 k
开始菜单->运行->iexpress(输入运行这个命令)* w9 u: z8 V6 V- s" n
然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~
/ f. q* L* X4 u- g只要你合并的文件不被杀合并器就不会被杀~ 4 t2 U" R! ]+ j( X" d. j6 D: e
c:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压 + Z4 B* E& t' a6 H p3 r
: ?6 E7 W+ ~3 t, @2 C& _可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上 0 H m4 j* U( J2 Y( e
<!--#include virtual="/inc/comm/adovbs.inc"--> ; S4 N4 T n& K D3 D: v5 F
就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 " } Y6 p- R J; p% i5 N$ w! T
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp # X. g) k' |( z* S6 Y! u
<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp / u9 V7 _3 q a' v1 w/ E. B
2.绝对路径 8 b6 [) I. @9 J4 w
<!--#include virtual="common.asp"--> 默认为根目录下的common.asp
. s; V0 N6 J! {, Q; O* \: A< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp 4 r5 z. B7 u5 R. o4 g7 B
: _1 O- J# |9 q S- g<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>
% V" S& Q. D8 P! J! D3 w<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐 ' J9 r$ ?& `3 S; E" O8 B
telnet x.x.x.x 80
# e# y0 T ~/ |! x, |" w回车两次。
6 s! r: _! U8 T! mcer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用 $ S* G+ _$ ^ Q: ]
暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径
8 z W1 H9 _, @$ ~% l8 U2 ]' q) ^+ u7 S$ A: n8 J' d% s! K8 F
url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c / [, b }3 n) H. E7 a& B
/ @/ K+ ?/ a! Q3 ]: @
我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了 / p$ [% |4 c; c9 t* s3 @) h% f
$ @+ C! _( o# i$ m. w8 E+ s$ a
<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码
! B) Q( Y( ^! ]7 }! _5 q, e: q浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。 ; O) d/ I) g3 W I/ l: W; x
2 t' P8 K% Z; G {1 E
RUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现- k! [( j3 j0 t1 E5 L) S
request对象对应于HTTP请求,response对象对应于HTTP响应
9 m8 v6 P0 v* F REnd方法会立即停止Active Server Pages的执行和相应结果
' }2 t: P- T9 s- e5 t2 e3 cClear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法1 R# e# {3 @3 z6 b/ p' ?* o- o
■1xx信息:这种状态码主要是实验性的。
: j& `* I# q/ S0 o9 @■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。
! n3 z$ J0 l) ]1 n+ B4 t■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。 ) R" a3 d/ B1 \
■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。 7 n# l1 K- A4 ]% Y o
5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。
6 ?- c/ s) A% `% b R& \- f在IIS中先执行INCLUDE语句而后才是VB脚本的执行 $ L& }# S u ?8 F. r" f, y! Q
在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。" z" O9 e9 K/ x3 L
你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行/ [0 Z. [7 t0 D4 z9 @5 r
|