|
来源:http://www.hackblog.com/more.asp?name=lsaint6 n6 u) N3 y2 C" [) c
现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。
/ V- e. D1 ?; z9 B# T* I3 j$ g4 @4 i A
访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机
+ T% ?' c2 k3 U先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件
2 `6 H# |. I6 P$ j+ |2 U# X% ?- d( s* w/ w6 W0 R/ Z: ]
view-source:查看web代码 ! }: O }/ [2 e* f3 N' M
总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入
& ^$ `5 N& u6 N: L5 l9 hand 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='17 @+ T* f9 U, T, h
1'or'1=1, K1 e# N0 m. d; v0 A
'or'='or' ; K: D' F: W# M8 [) `
3 t! ~! X2 P4 }5 [! u! K$ Xselect语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作 / n* K8 B9 A: r( |
sql="select * from admin where username="&user&" and password="&pwd&""
' @7 }* }% \2 Y3 q9 ysql="select * from admin where username='111'or'1=1' and password='pass'
- W4 u, e& a- U) l4 o9 L( Csql="select * from admin where username='1'or'1'='1' and password='pass'
- C U, |- o1 P( e" D
# G0 O3 D. E$ j* j开始菜单->运行->iexpress(输入运行这个命令)+ x- q9 z+ N F/ t1 A# a0 R. S
然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~) ^1 A- _( }" E0 p* [/ ^% @
只要你合并的文件不被杀合并器就不会被杀~
* }. s: X6 z. q$ X0 @c:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压 ) N* k- e% y3 z/ t
, p- [( t5 n# ?" a1 i: n可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上
/ l/ H$ O6 A& `7 x p, w( m+ _5 o) W <!--#include virtual="/inc/comm/adovbs.inc"-->
/ ]6 h$ H" W0 c7 U 就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 9 n9 R2 Z W( S$ q6 y4 q
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp
; R) f1 g) w3 c; o<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp
7 P+ P4 C5 }% V8 a+ Y2.绝对路径
" H( M1 ~3 O( L<!--#include virtual="common.asp"--> 默认为根目录下的common.asp7 E3 U( [; A' U
< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp
! l# S' O8 T; D; S6 W o3 R
+ r) P K' `$ L- ]0 [, K: e<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>
0 N" ~+ d% S" E- M% H' b<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐 2 A' f5 h- c, x8 y) L1 r. z! W
telnet x.x.x.x 80: ]2 L9 w/ q( w' B6 U( x/ K
回车两次。
X4 j$ \# p! g9 B" scer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用 2 S: s' ^1 z* ^3 a' ~, q
暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径
9 }: I$ v( G! W3 T0 ^ [ [' I7 s: }+ F5 U( h
url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c + z; O% k% l( p, i4 G. Z& x
9 O2 f& k' T2 V, A我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了 % Q1 }3 c, S4 M3 b7 m
1 i# m. ~1 r. t% P
<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码 * w/ {$ L( A# A, t
浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。
6 Z4 q1 b7 [5 `+ z( l
: k, f) L/ Z: Z2 V9 S. ?& r! GRUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现+ B* \) C' I; r6 @
request对象对应于HTTP请求,response对象对应于HTTP响应
4 h" O* O5 w9 a. O% V* u3 B% GEnd方法会立即停止Active Server Pages的执行和相应结果2 p6 \) x% r0 P; F4 Z8 a
Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法
+ D* R0 F! s; _4 Q+ Q■1xx信息:这种状态码主要是实验性的。 . I5 y- N) T% q+ W2 T. Z/ ~
■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。
$ y; a) m* K* q% `& T& L■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。
5 m% c2 r1 C5 Z$ l- |■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。 1 _' Z4 l. y+ w; r
5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。 5 v9 C8 T+ B+ U' {) l( N
在IIS中先执行INCLUDE语句而后才是VB脚本的执行
u" H9 T$ F' V0 F& @在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。& W. O: X8 _+ A l( V# l
你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行7 ]6 h# n& }8 r/ q# K" c
|