|
来源:http://www.hackblog.com/more.asp?name=lsaint
/ G% n4 O7 i: J6 V 现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。
- L# E9 z; r! i( ^; G# E! W# J1 P% _& d D. R
访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机
( r$ e, L' B7 p) z5 c4 |1 h/ j: V0 z先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件 , J, P1 b/ r3 m3 ?! }4 D6 U
" v5 _7 i7 m4 G; a% Mview-source:查看web代码
1 }9 Y x) v& P8 Y$ Q; Y; _6 ^' K总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入 $ ?" Z! |# Z- G; P, d* o: Z+ A
and 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1( w( [$ I( W N0 R
1'or'1=1
0 @1 A/ t2 m6 |% O/ i% t+ L'or'='or' ; d \! W, S6 B' N9 {' x, H A8 g9 i
2 A! D$ S: `% Q. W7 Q: ~: t
select语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作 1 P, ?# U* I3 j1 C% ^* M
sql="select * from admin where username="&user&" and password="&pwd&""
6 r' R, G3 e! g- U1 }' a5 [8 isql="select * from admin where username='111'or'1=1' and password='pass'( U' y4 g, @6 _& ~( Q) M
sql="select * from admin where username='1'or'1'='1' and password='pass' 2 V3 W- o) a# ]6 ^! n
# o) V* t5 x- t5 L
开始菜单->运行->iexpress(输入运行这个命令)
2 l8 ]5 K; V: V" g然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~( R' d6 {- d8 J* S- t+ ]& Z
只要你合并的文件不被杀合并器就不会被杀~
4 j4 C+ ? x* a9 yc:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压 ) _5 B) |# v9 ]3 ?: k2 E; f
q: l9 d! u8 M7 x: A可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上
7 |6 w5 i, A9 ^& D$ D6 M, P; C <!--#include virtual="/inc/comm/adovbs.inc"-->
" l* p7 p4 f) G( ]" z y 就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。
3 q. ?; S7 K. ^1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp : ]# [4 n& i5 V- Q* ~
<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp 0 X5 I F0 w7 |' d' G
2.绝对路径
- `) ~% Z8 i2 @<!--#include virtual="common.asp"--> 默认为根目录下的common.asp" W: n! p2 `$ Z" i; i2 d% p$ ~2 C+ v
< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp
5 C" C& R# c L) D: [5 ?' }2 S% f! K6 _# A4 p
<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>6 t2 F# ^) s' P Z1 o
<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐 7 k- t9 k9 h% Q5 y
telnet x.x.x.x 80
% x& {/ z, c9 L" m回车两次。
+ L# C3 G- }7 h+ }% Q2 Xcer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用 7 w/ O# B* t" r2 X2 K/ G- f
暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径 1 i$ B! j* l. b
7 A2 \- y, E8 q
url编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c
. l: Y9 I p0 b1 y5 j, l; f) p; _" s8 L; }4 R L! b/ |' \1 N4 z! E
我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了 4 K F9 A' k+ a- c2 l& f, d
3 k7 }8 t% R3 |6 F% X$ c: P
<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码
3 C. m) M, ~# c7 a Y7 l2 I浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。 Z; D* y7 Z' D
: |* R8 a3 `( p4 I7 a4 D; S" z
RUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现
+ [4 P2 n5 {" |request对象对应于HTTP请求,response对象对应于HTTP响应
/ g A+ N7 U, I [* CEnd方法会立即停止Active Server Pages的执行和相应结果
5 q/ f$ F- [1 D9 ]Clear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法$ t( d0 V Z' ?3 a5 i! M( b
■1xx信息:这种状态码主要是实验性的。
" C- H! t! t! B■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。
' W) O; I' W) z■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。
?# p: n" d- F' p■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。 : A. b. `; e& H3 f" E& d; w9 \5 t
5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。
2 k& ^( w p5 \. q$ V5 x在IIS中先执行INCLUDE语句而后才是VB脚本的执行 1 p& v5 j5 P# K: Q& `. p* z
在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。
: ^- y& b% ], o/ _你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行0 s9 \. d7 [: f( d2 k z! J4 ~
|