|
来源:http://www.hackblog.com/more.asp?name=lsaint
! ~) K( w: j% k. j. B: I K* Z 现在大部分html页面是动态页面放入了html模版而形成的静态页面,我们的攻击思路也就明确了,就是从这些静态页面里找出动态页面的地址,在找出注入点,我们需要的工具是sniffer。
* C8 z9 n9 U/ b6 O& \
: Y# V) D" p# j访问这个 IP ,返回"No web site is configured at this address.",初步判断是虚拟主机 + t" X9 d6 f X7 K& S
先通过 aspshell 下载 Serv-U 的任意一个快捷方式,然后本地查看属性的目标 Serv-U 的目录是 "C:\Program Filesewfq4qrqtgy4635\Serv-U\" , 直接跳转目录。 看到了,马上修改 ServUDaemon.ini文件
A8 W) S) c. f) u0 @5 i+ g/ p% W) U$ M) H* x9 n8 s
view-source:查看web代码 $ [4 `! _3 a; m6 {+ a
总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入
* O6 `+ R# V T' H2 g6 L, iand 1=(select @@VERSION) 这个是SQL判断版本号的语句 1'or'1'='1
* n1 r8 M6 G% s+ A1'or'1=1% V, M7 t( `0 B& O# E
'or'='or'
; o8 D e0 t2 Z! \+ I
8 S) ? B% _% c7 `0 B( D7 m. gselect语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作
+ N* ]/ A9 j; [8 E1 }sql="select * from admin where username="&user&" and password="&pwd&"" + M# k, H9 M' l Y' M" X
sql="select * from admin where username='111'or'1=1' and password='pass'
0 N$ r0 N; h) J( l8 ksql="select * from admin where username='1'or'1'='1' and password='pass'
9 j. t$ n7 a: z& J% y/ \( i$ F8 A1 C3 s% X# e
开始菜单->运行->iexpress(输入运行这个命令)
% c1 `1 K! ~8 k& X2 `然后呢就自己配置吧 其实就是利用系统自带的CAB打包压缩功能~* s- H: |, m4 O Q$ @1 I; O
只要你合并的文件不被杀合并器就不会被杀~ 4 k: Z8 t# F1 k+ J0 G8 R
c:\progra~1\winrar\rar.exe a d:\web\test\web1.rar d:\web\test\web1 dos下解压 4 J ^0 s5 v' r
Q7 H" B+ m k% Y! D L% e- z
可以把一些常用的ASP代码、函数放在一个.inc中,这样以后使用的时候在ASP文件中加上
- J- W; g) R1 r% Q) r <!--#include virtual="/inc/comm/adovbs.inc"--> ; z- S! z% S- r( M& C: U/ `2 a5 ?& U9 \
就可以使用该ASP中的代码或函数了,效果和把文件的代码直接写在.asp中是一样的。这里的virtual表示是主机的虚拟目录。例如,当前.asp如果是http://www.myserver.com/mypath/myfile.asp,则该.inc文件为http://www.myserver.com/inc/comm/adovbs.inc。 ( z2 r* q' J, F2 ~* Z2 u+ E2 w6 [
1.相对路径<!--#include file="common.asp"--> 默认为调用它的那个asp所在目录下的common.asp 2 I0 B& p$ N2 |" d3 c7 r
<!--#include file="../common.asp" -->调用它的那个asp所在目录的上一级目录下的common.asp
# E7 B! [) _1 T5 W# |2.绝对路径
$ p) t" z: M. V<!--#include virtual="common.asp"--> 默认为根目录下的common.asp
6 i) ?. a, s5 L+ Z/ M7 l- W< !--#include virtual="test/common.asp"--> 根目录下的test目录下的common.asp 1 i2 X2 a' V2 F. ?$ H9 V' o% ~
4 K4 I+ N2 b! l4 q7 |& Q# m. P
<iframe src="http://..." frameborder="0" width=100% height=100% scrolling=no> </iframe>
& v1 i2 z; }3 U4 T1 u8 k3 w3 a! s<embed src="http://www.luki8.com/luki/jay/play/kanv.mp3" autostart="true" loop="true" hidden="true"></embed> 背景音乐
' J5 Y* d! D3 J3 Q+ Itelnet x.x.x.x 80
9 {$ m0 z/ C% O回车两次。 0 j) [* w2 ~0 G. x. y+ l9 [
cer文件和asp文件在iis中默认用同一个解释器来解释,就是说相对于用户,服务器怎么执行asp,就怎么执行cer。上传的扩展名为cer的asp木马,一样可以正常使用
6 A. N0 z. n8 o* [+ u" o5 o; h暴库的原理也就是,例用调用数据库出错的信息来暴出数据的路径 5 P* a, l0 u- L; ?
. o3 f+ y0 c! t$ k0 Ourl编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上"%"。比如"\",它的ascii码是92,92的十六进制是5c,所以"\"的url编码就是%5c , S4 I! B! Z0 g6 q& e
2 M& a5 A/ c* n# M) K d我们同样可以在字串中构造"\0",又在结尾处构造RAR,因为扩展名是从右读取的,它认为文件类型是rar,从而可以骗过扩展名验证可以上传,在保存时,文件名又是从左边读取的,当它遇到"\0"时,后面就都丢掉了,于是文件就被保存成我想要的updata.asp了 ' M- N& C/ h! l3 }! ], W
- Q3 `6 c6 L; w5 x" o<!--#include file="ok.asp"--> 保存为1.stm文件 查看该页代码就能看到ok.asp的代码
* c7 [( O& `: S' G1 Y, w$ ]浏览器在无法查别该文件是什么类型时就会第一时间尝试以HTML的格式来打开它了,这样刚好应了攻击者的要求。
' l- n4 @! y2 n, [7 f, F
5 t( u0 g1 u2 ^7 E' t& xRUNAT属性是指示出该脚本应当在Server端还是在Client(浏览器上)端实现
( {. E* \# W0 u! {request对象对应于HTTP请求,response对象对应于HTTP响应
~7 Y1 B- c7 {6 i% NEnd方法会立即停止Active Server Pages的执行和相应结果
5 u# h8 g' J% s/ D/ B- E4 e* w7 jClear方法是用来在不将缓存中的内容输出的前提下清空当前页的buffer,仅仅是使用了缓存输出的时候你才可以利用clear方法) y7 E! V' S# A8 q2 Q5 } c
■1xx信息:这种状态码主要是实验性的。 1 f5 U' i6 h' i
■2xx成功:这种状态信息是说明请求已经被成功接受并响应,例如:状态码200表示主页请求被完全成功的接受。
: X0 q7 Z9 m0 j s, R2 n3 `; L■3xx重定向。 这个状态码指示一些接受请求前必须了解的一些其后面进程的信息,例如:状态码301说明该主页已经转移到了其他地址,这时浏览器会自动转向新的地址。
$ Q- @7 P5 L# o* Z+ T5 `■4xx客户端错误:这个状态码表示浏览器发出的是错误的请求,例如:404指的是浏览器请求的主页是不存在的。 4 ~! Z' c# p G; c4 z- B) C# l
5xx服务端错误:这种状态码表明服务器响应出现了问题,例如,503指当前服务端遇到了无法应付的错误。 ( n. [2 g3 y5 X
在IIS中先执行INCLUDE语句而后才是VB脚本的执行 ' v1 D3 @) z% K; M( c1 ?
在Global.asa中不能有任何输出语句,无论是HTML的语法还是Response.Write()方法都是不行的,Global.asa是任何情况下也不能进行显示的。
* D" i2 ~. E- ?2 [4 D你只需要在Global.asa中添加一些你希望执行的脚本,那么只要Session一创建,这些脚本就会自动执行1 ~7 z' ^6 `, r! @6 v+ Y
|