|
来源:http://www.hackblog.com/more.asp?name=lsaint
- B: ^7 y. r3 | 现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。 * B6 B4 y9 p! j
, ~8 p1 u' q* Y* |9 E9 {访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机 . d9 p ?" u4 x h. P$ O/ ?7 W
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件
2 [# r' Q0 E) V2 d8 y& b6 g/ L( N1 V k# Q6 m. _1 x
view-source:查看web代码
% S4 M5 _5 [1 D9 I0 m6 e. Z! Y; [总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入 ^" p- H( Y6 H) i2 T N2 d) O% ^
and 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1# r/ I" \, {# K; C* T7 U/ ?/ N. z0 d
1'or'1=14 S" a$ O% b* {2 r' L* D; r r) _
'or'='or' + A) D8 C/ y; }" _% ~
" h2 a' @& H; L- N( o5 A
select语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作
* h2 y; t7 C# a1 e% nsql="select * from admin where username="&user&" and password="&pwd&"" % A3 b* P+ n& ~5 p
sql="select * from admin where username='111'or'1=1' and password='pass'" W; _; V4 r# S
sql="select * from admin where username='1'or'1'='1' and password='pass' 6 b: R: ^9 ]% D0 y2 h
+ w6 R0 J4 H' y4 v$ t3 }! D; n0 B% N
开始菜单->运行->iexpress(输入运行这个命令)+ p' o: Y9 w: C Z8 ]9 P
然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~
' s3 z2 }% Z4 _; m" V6 L. {' D只要你合并的文件不被杀合并器就不会被杀~ 6 V* P+ `* D% ?. k) M
c:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压
6 {0 ^' i+ _8 J! I! Y1 Y, t& Q8 w% k( G+ O4 v" l+ N2 B3 m
可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上
7 r! @$ K O" {9 X5 v$ U <!--#include virtual="/inc/comm/adovbs.inc"-->
' u9 |* T4 L; m) e: j/ v 就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 ) J0 n3 V$ M! I% p
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp . o5 I- f# t7 A2 F, N1 l4 `5 [
<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp 1 S& A/ b; w, L( A
2.绝对路径
3 g' X. U& X' m$ m<!--#include virtual="common.asp"--> 默认为根目录下的common.asp
. {+ H) X+ O, T8 Z< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp ( z% t) Y$ y. s& J- ^% c
2 |8 O# k+ y2 N4 `
<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>
- Z- H7 h/ a! n$ p, E' k) v<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐
" ]2 M5 F9 r/ f7 wtelnet x.x.x.x 80
. [2 P# l" I. m$ Z& g: u) }, ?2 C回车两次。
; _( k2 w- {+ J( Qcer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用
) \2 m3 [) ]% k* \$ c L暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径
+ U" B% G% V( _. r) p
0 a. X5 K2 v7 K- T C4 Burl编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c 9 h3 ~; t! X8 Y( Y4 D7 ?
" F& ~' T+ T8 ~. H' F! W2 Q
我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了 5 T4 w! x- w2 ]
9 N8 l2 H% V, q6 K! r+ T
<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码 5 l* P3 }7 K' t; A. s1 R
浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。 4 v u0 ^& M* E, B
8 b4 F7 S/ Q) P
RUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现: q) L' v1 {; B( C
request对象对应于HTTP请求,response对象对应于HTTP响应/ Z y9 ^& C) u7 W& a
End方法会立即停止Active Server Pages的执行和相应结果6 j4 T) b, O K# e; Z3 C
Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法
0 M/ I* Z: Y& O9 @ x2 P■1xx信息:这种状态码主要是实验性的。 ; c" J/ U1 m& s8 z, l6 j! l3 m. E
■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。
5 t! D) o; I0 R) J! ]! k: z■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。 , e8 @0 R1 d9 U1 c
■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。
* P2 v, K7 n( P4 b; A% O/ I& e" @5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。
( m5 g/ u5 ~7 b( ]( t( F在IIS中先执行INCLUDE语句而后才是VB脚本的执行 / ]! m! M8 c9 q& \/ R
在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。( U" f, ^( I1 u7 k; t2 A
你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行* z7 f$ C) T" Z2 o9 t, @: }; T
|