软件简介:, I4 M8 S" d' J& s; }2 u$ `: H
(注意:本教程配有语音,请打开您的音响,并且使用1024*768或以上的屏幕分辨率来观看!)5 k+ c5 j. T# s5 m1 U6 I: @3 C# ?3 p' g
本次动画教程主题: 站长的安全利剑1 O& B& Q1 ]0 o7 S+ E
制作时间:2007年10月21日 制作人:甲面将军 QQ:1218137207 P3 e( R. z1 V1 y- @
需要用到的软件:safe3-安全伞+ f8 Q& [4 q' ^
演示环境:windows xp sp2操作系统
* Q: ^9 Y. N+ B' L. ~! y% Z1 `
r- q% h5 G, n7 L# y7 m* J" W虽然现在已有防火墙、杀毒、入侵检测等安全防范手段,但防火墙对Web入侵基本没有作用,杀毒软件更是对变形webshell显得无力,SQL注入稍微变形就可绕过传统IDS,由此导致的网页被篡改或挂马屡见不鲜。目前专门针对Web安全的工具还很少,而像中国中央政府门户网站所使用的iGuard网页防篡改系统又贵的惊人,由此诞生了一款任何人都用得起的轻量级实用的反黑工具-安全伞。
" E& Q* Q" x, a( q7 ^一但发现黑客入侵就可立刻采取措施。同时集成了多种实用功能,让网站管理变得更加轻松。
2 W- T& b, Q4 |8 P' u4 G运行环境:4 x7 S) B6 e" h1 E p* N
运行此软件需安装Microsoft .NET Framework 2.0
" z. b6 s# Z; @; c; H; R) e: y e对用户来说,就是一个组件,如果你碰上用.net语言开发的软件,那就必须先装上这个东东,才能使用软件。目前越来越多的软件运行要依赖于它了。 对开发者来说,它是一个庞大的类库。$ V4 Y7 `, Z/ H3 [. a' v0 g
下载地址:http://dl.pconline.com.cn/html_2/1/82/id=10637%
5 v8 c# h" p" P. \- n'Copyright by Bluer 2006
! a: h" y3 d: yResponse.Buffer = True: Z5 x" s4 R( t E8 U B, P
On Error Resume Next 7 O# B5 D$ X: U( Y
%@ LANGUAGE=VBScript CodePage=936%0 l; J0 N8 ]7 ], }3 p
%3 b( x$ O2 Q9 T1 Z1 N8 B" e" Z
Option Explicit
9 }& X' R, F3 f/ X2 oDim Startime,Endtime
* ` O- \# ?' `" kDim Dvbbs, MyCache
( H" p* W2 O6 \$ |' { H2 V. h& BDim SqlNowString,Conn1 c, A+ z' r% T
'定义数据库类别,1为SQL数据库,0为Access数据库
' @% I& [* @8 B/ m) F: Y. eConst IsSqlDataBase=01 V8 b) e! m, g+ ^
'论坛缓存名称,如果一个站点有多个论坛请更改成不同名称
, u! z1 M- H1 h% LConst Forum_CacheName=aspsky
5 W5 G. I9 `# H' I) Z9 x2 v7 U/ PConst Forum_EnableCacheDatabase=11 D4 e' E7 {! @% S3 o5 R2 a
Startime=Timer()
* Y" e" y# t) B5 q( {Dim plus_name,Plus_Setting
4 ?% p1 x3 [" t' aplus_name= J% Q5 x- `3 G1 m3 T3 i7 |. ]
Set Dvbbs=New Cls_Forum" A9 s* t4 |9 K
Set MyCache=New Cache1 j6 J- b/ j( o8 L! ^2 Y
Sub ConnectionDatabase
1 y/ ~5 D/ R2 v8 S, }9 E" W. aDim ConnStr
) K A A- ?& y% DIf IsSqlDataBase=1 Then8 U1 F: h( M: q x g- F
SqlNowString=GetDate()3 t9 |* J4 T; B# B9 d. K
'sql数据库连接参数:数据库名、用户密码、用户名、连接名(本地用local,外地用IP)0 F# ?/ G, B: j2 W7 k
Dim SqlDatabaseName,SqlPassword,SqlUsername,SqlLocalName3 j4 c( B: Y& x3 s Y! D3 [ I
SqlDatabaseName=
# d' ]* u3 U( V* oSqlPassword=
/ Z. C7 F5 g" ?9 @SqlUsername=sa
0 j0 C4 M+ L# W- C& DSqlLocalName=(local)
4 K% I9 @9 ?$ l- [+ qConnStr = Provider=Sqloledb; User ID= ; Password= ; Initial Catalog = ; Data Source= ;
/ \! ^+ A2 o# W; ^6 h. q/ i& W8 `; RElse
: {/ ^4 j' r9 G+ |% U0 cSqlNowString=Now()$ a( v/ f# I- l
Dim Db+ v/ I% a5 R- x/ _7 H8 l+ U0 N" H. p
'免费用户第一次使用请修改本处数据库地址并相应修改data目录中数据库名称,如将dvbbs6.mdb修改为dvbbs6.asp3 _1 G4 J3 T4 X7 Z
Db=data/dvbbs6.mdb
/ I! l0 w& {+ [3 u( u0 ZConnStr = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ADODB.Connection)
* ^8 M* K2 t; p( y" {3 R+ qconn.open ConnStr
" ?; U) n* Y2 w* l( q7 ]If Err Then _# s7 r# B4 T1 }% D1 N/ N% A
err.Clear$ P* g7 K& ^( Z# ]: {8 ?
Set Conn = Nothing
0 X- j8 x" G' U. oResponse.Write 数据库连接出错,请检查连接字串。% ?( Y5 M6 A) B5 b( T
Response.End
9 d+ f+ p) `: e. NEnd If
' {% i2 Y# j0 @; P i9 _End Sub
" q6 m3 b( Z( q$ o a# ISub CloseDatabase
3 I( s& A. M7 x6 W- k! N. I- MEnd Sub
/ @/ y" | I8 G%
. {* @" F7 Z# ~2 Q' I1 K2 SIf Err.Number 0 Then ' D! [5 ?2 Z/ E3 D( p1 ^, s
Response.Clear . M' w, P) T* K' q3 R3 n
Select Case Err.Number
; _" k3 ^7 M) R3 ^1 D6 H3 c$ `0 q Case 0 # k2 h- h& h8 E
Case Else
- F- C. A: s9 |& t
; s2 c7 r p7 {! i If IsObject(conn) Then
* ^6 ^9 i& V* v8 \ If conn.Errors.Count 0 Then
3 T+ v; t# n* _ Dblog=Database Error:
) n' G5 T5 T. t2 ? {4 i% A For intLoop = 0 To objConnection.Errors.Count - 1 / {# ], X( S, m5 r
2 E: ?5 G# \' |5 Y0 h7 @
Dblog=Dblog + Error No: + conn.Errors(intLoop).Number + |
" `9 C* A" K Y; P/ O$ U& e+ J Dblog=Dblog + Description: + conn.Errors(intLoop).Description + |
* c! }. ^* Q% z. E' h+ V Dblog=Dblog + Source: + conn.Errors(intLoop).Source + | / S% J0 Z3 j" ^1 X) j) h
Dblog=Dblog + SQLState: + conn.Errors(intLoop).SQLState + | ! H4 T; ]; a1 W
Dblog=Dblog + NativeError: + conn.Errors(intLoop).NativeError + |
1 S3 d8 e: a% T; P/ \+ f1 f Next
]5 y, F7 @, S# F6 h1 Q slog(Dblog)
* V# Z# `3 x C4 k) {9 f; m- T1 _ End If 2 {$ d* Z! X, P7 S, ^% U
End If ( `0 D* b. y3 w7 R9 K
If Err.Number 0 Then
' K5 \2 h+ v- P& W& J
6 T3 {, L% L7 G& f$ ~; | Plog=age Error:
! K* X6 H; X' l' I, W8 p Plog=Plog+Error Number + Err.Number + |
7 z1 \+ W/ ^/ J- t6 h+ E Plog=Plog+Error Description + Err.Description + | ( P7 x4 X8 x+ l7 m9 `1 D
Plog=Plog+Source + Err.Source + |
6 G6 q" P! m2 m, h, H Plog=Plog+LineNumber + Err.Line + |
0 m f( K6 v6 y" d slog(Pblog)
I! Q/ @5 Z8 [3 C) b, ^; n! C) E+ B End If
) |/ I: N" S# v. G6 N Response.Redirect /XXX.htm' T6 f& D, o H$ j% w9 b- p
End Select % O E" J e5 i- s6 X) n" r" d; i
Err.Clear
3 q1 t$ _+ ^. e# bEnd If 8 q8 P) r$ J$ f$ x& N" `8 o
if request.querystring then stopinjection(request.querystring)
5 T3 }( o8 ]$ K7 N. h* Bif request.cookies then stopinjection(request.cookies)- } S2 L6 T' p/ l0 @
function stopinjection(values)
2 P# Z5 A3 `- E! {1 D8 Y) g- g/ S; ofor each n_get in values& L% S; E5 y& x+ ?
dim l_get, l_get2# G; U2 b1 K- b
for each l_get in values
: R1 J, S' B; q1 r% h/ }8 M0 d l_get2 = values(l_get)
# T' ~0 N3 c7 y) R) [ set regex = new regexp: L, {2 |/ ?% g- [2 W0 h
regex.ignorecase = true) a: H7 s8 Z$ F6 I* b' T
regex.global = true1 F+ J) r. ^; X! B5 M
regex.pattern = (\sunion\s|\sor\s|\sand\s|/\*|'|;|--|\sdeclare\s|\bselect\b|\bupdate\b|\binsert\b|\.\./|\.\.\\) " u0 x1 }+ U/ |: z
if regex.test(l_get2) then
% m1 {# E1 {. y1 D" J4 R
8 Y2 ~9 ^8 o0 B# A: c1 \4 L/ h% Q1 g sURL=server.htmlencode(lcase(http://+Request.ServerVariables(HTTP_HOST)+Request.ServerVariables(SCRIPT_NAME)+?+Request.ServerVariables(QUERY_STRING)))' g2 f2 C0 h" {9 n" v J
IP=server.htmlencode(Request.ServerVariables(HTTP_X_FORWARDED_FOR)), ]0 Z) N$ D" Z# g. l+ o# N
If IP = Then S7 A+ I/ P: T3 e5 |; N
IP=server.htmlencode(Request.ServerVariables(REMOTE_ADDR))
: \; v0 z1 q' I7 V end if; j) D+ Y3 L0 `6 i
) H! D" u: D4 ]' t. ~7 J
slog(brIllegal operation IP: Illegal operation code: Illegal operation time: HTTP_X_FORWARDED_FOR)). b$ A+ G5 }3 K8 p: U( ]
If IP = Then
8 M2 i) X( p- Y8 S2 ^* | IP=server.htmlencode(Request.ServerVariables(REMOTE_ADDR)) + q6 D0 s9 I1 m6 |. [- }$ {5 C
end if* S% W3 j% T8 ?' n: u: {
Response.Write System automatically holds up illegal operation code!QUERY_STRING))Your true IP isscriptalert(' System automatically holds up illegal operation code,records your illegal operation!');location.href='http://+Request.ServerVariables(HTTP_HOST)+/XXX.htm))';/script% b# ^ u/ S+ K- L
Response.end
: {7 u8 L; I. ]/ c. Zend sub4 _; P7 S, l0 q- O# l( Z" \( d
sub slog(logs)
" d |; q& h5 Z/ e toppath = Server.Mappath(log.htm)
- D' N. L8 r9 i# z6 D% l2 d& w Set fs = CreateObject(scripting.filesystemobject)
* a" G) e3 x8 k+ z If Not Fs.FILEEXISTS(toppath) Then ) J. s& ~! h4 B
Set Ts = fs.createtextfile(toppath, True)! G- C( W) T5 T7 M. o: A8 |
Ts.close" @' |2 [. T# Q% s. X; s: P; d
end if
- n8 X% ^4 P+ d9 _ Set Ts= Fs.OpenTextFile(toppath,1)# U$ h, X" a, T
Do While Not Ts.AtEndOfStream
/ Z3 y, d% A z! e2 e `/ K$ u Errorlog = Errorlog / f' m9 N) H3 ^0 D
下面是检测到攻击跳转的页面XXX.htm
( ^/ x o( J# c$ O8 whead+ s# V4 f7 R' M, K0 ^% m
meta http-equiv=Content-Type c /
2 E: j; c+ d# ^title/title y# ] F6 y4 `- s s( t+ N
style type=text/css. i2 u) ~ O# l. D' @, Q) a* B
!--) o% w( |; v' P: ~* x- q/ M7 E
body,td,th {font-size: 9pt;line-height:14px;}5 ~0 a! `/ m. c, U; E( B" y
.zi_1{color:#f10c01;}
8 ^" x+ j: [" l* X--
3 t* M& H5 ^, W0 B& E# I0 B/style% K! z6 }: o0 _$ N
/head
! y0 C# Z/ I6 l; C: ?body0 t& k) [1 P2 X& L/ q d" R3 P
table width=100% height=100% border=0 cellpadding=0 cellspacing=0
0 K2 M% m1 t( Z7 X4 \$ k4 {; n" l tr. t$ D1 ?* F0 X9 L' k% H5 m
td valign=middletable width=347 border=0 align=center cellpadding=0 cellspacing=0
+ `% `6 _* S/ V+ Q$ k! N& v) @% Q2 W
! M+ d' `7 R& p0 S" C tr
7 J( l) b+ G! J6 u+ U5 H td您访问的地址不存在或已更改。br
- O0 y L: [! u 系统将在 span class=zi_11/span 秒钟内返回首页,如无响应,请单击下面按钮span class=zi_1返回
) O+ V) P8 A- @8 X a href=http://www.3800hk.com//a/span/td
" D9 H2 n! c/ X+ n /tr0 V. g: K# J2 I# r
, M, n& p0 I4 v- ~
/table/td8 B7 l: i8 }! X+ p9 q2 v
/tr1 ]' C' t+ S3 b$ p$ j; g& V
/table% G2 A: n% A( S }$ R4 i1 t
script language=JavaScript
/ u7 L' w$ ^3 L0 L7 T" ^: z' S7 lsetTimeout(top.window.location='http://www.3800hk.com/';,3000);; t% a L% q+ j, J- A
/script7 Z5 E) x: j0 w7 {( m
/body
" R, H' ]3 h9 V) H, i' D/html% K3 I- X" Q4 h6 Z8 J
使用方法
6 h9 F7 i: f) r) w: W' m找到网站下面包含Server.CreateObject(ADODB.Connection)的asp文件,一般为conn.asp
/ o) L( t# G5 f/ m4 ~0 T将上面原数据库连接代码放在这里(比如conn.asp的代码)的地方用conn.asp里面的代码替换,保存为新的conn.asp,运行发现攻击后会在当前目录下生成一个log.htm的文件,该文件记录了黑客的非法操作和ip地址,请将XXX.htm这个文件放于网站根目录下,发现攻击后会跳转到该页,其中的网址大家改成自己的!6 x" u C/ t* |0 v4 C8 H5 r$ ~
下载地址:
|