. @3 R$ r& A3 `) U, L 典型的代表是leadbbs V2.77的那个密码修改漏洞:任何注册用户都可以修改管理员密码,从而入侵服务器," J( O: Y$ S6 v
进而拿下主机。& j) w" N# R! a. z
登陆后修改密码,查看源码,其主要漏洞代码如下: 0 w) D, R# I2 Z( `, o# M. P8 u& m' o....... . ^3 \ u2 n) e! _5 L+ ?" A, ^8 x' B6 _0 S
. Q# z1 I; A8 O8 N
< form action=usermodify.asp method=post name=form1 > < tr> < td align=middle height=25> < p>*用户名称: < td height=25> < p>norfolk < tr> < td align=middle height=25> < p>*你的密码: < td height=25> < input class=fminpt name=submitflag type=hidden value=52norflk> < input class=fminpt name=form_id type=hidden value=265> # G# U: y, @1 g' w9 [9 ~8 P2 ]4 s* }* c: Y
$ `: ]- w6 K& q0 c$ x
........ . I: A# ]+ d+ ^- c& i ; e; v( c. }5 _1 m其中我的from_id的值为265,在管理员例表中查看管理员ID,然后将它替换265,再将ACTION的URL相应的修改一下 3 ~9 s& [) A. z: O保存为HTML文件再提交就可以将管理员的密码改成52norfolk。 3 }9 l7 ^* Q7 I0 ], Q4 j6 S & j* Z; J' e' X G
这个漏洞早在2003.12月就已经公布,这里在拿出来只是为了说明一下这个HIDDEN隐藏字段的危害。不过我发现目前 ! c" m' O' V/ u# T还是有不少程序可以任意修改其他用户的密码,至于方法如出一辙,(偶用这个漏洞拿下过不少站点的ADMIN):-_-; U1 b* f/ B: S
9 u# z0 \9 y. l4 I1 U) l$ S3:任意修改价格以达到低价甚至不花一分钱网上购物。7 u, j W4 z+ N7 n0 @
" ]; A9 `7 p f9 g+ g( j
早在几年前国内国外的一些大型网上购物网站就已经出现过类似的漏洞。 这些网站的后台程序的验证机制并不健全 # Z: {. D1 v6 m2 I4 n$ {$ s3 \以至可以在外部提交数据,于是便出现了低价甚至不花一分钱购买商品的事件,导致这些网站造成重大的经济损失, 7 i; X- T* Q6 _) ?7 J& r K由此观之,网络安全是马虎不得的,即使一丁点而问题,造成的损失也是不可估量的。希望之后的程序员在编写程序时能 ! b2 f# t5 M3 H/ D/ p: e 够尽量细心。这里我就不再将它的利用过程写出来了,反正它们的利用过程都基本相似。 ! v7 m/ Q# o/ w( g $ M* X* Z: E5 J% V5 s 最后给大家介绍老外写的一个不错的检测WEB应用程序安全性的工具,一下是安全焦点的介绍:. j' `, N* L+ w# q3 M: {1 d: i# G
, a$ z( n* v' J, z
Achilles是一个设计用来测试web应用程序安全性的工具。它是一个代理服务器,在一 2 `3 {; U O" H- ~ 个HTTP会话中扮演着"中间人"(man-in-the-middle)的角色。一个典型的HTTP代理服 : x$ r5 O" c& M4 X: ` 务器将在客户浏览器和web服务器间转发数据包,但Achilles却载取发向任一方的HTTP会7 w; d# H- X9 Q
话数据,并且在转发数据前可以让用户修改这些数据.8 h' V8 V0 P0 z/ y5 s, ]8 N
) }( U9 V1 Z5 E- h
相信在WEB入侵方面可以为您提供不少的帮助,如果有可能下次再专门写篇文章介绍它吧,这里我就不多说了,有兴趣的 ; n6 ?: f. C% n P 朋友可以自己下载研究研究,它的下载地址:http://www.xfocus.net/tools/200403/achilles-0-27.zip* g; \$ q- V/ J0 y) ^
4 V7 s& }3 I: X) { 2 q# [" J. I) ]2 ^# [3 A 后记:1 M' V* k) o B! r$ H8 H6 D
到这里还是说一下解决方法吧。 % q0 @& _0 i7 v/ }% q/ m) L4 I 首先当然是禁止外部提交,这里有种不错的方法,大家可以参考参考: 7 J6 b5 b# k" O- T6 a H1 f# J% F! M/ V. M/ A; ?# m
5 R8 p# W, A t) |& I0 L. F< % server_v1=Cstr(Request.ServerVariables("HTTP_REFERER")) server_v2=Cstr(Request.ServerVariables("SERVER_NAME")) if mid(server_v1,8,len(server_v2))<>server_v2 then % > 你想入侵我也不要这么麻烦嘛,直接打电话告诉我,我给你开WEBSHELL,呵呵 < % Response.Redirect "Fuck-Hacker.asp" end if % >! v, \$ ~3 Z+ D% h' z