全面剖析“收费网站—VIP会员专区”

文章作者:魔女の条件

文章首发于《黑客X档案》2005年05月刊(黑客研究院) 转载请注明版权归《黑客X档案》所有

全面剖析“收费网站—VIP会员专区”
—魔女の条件
俗话说,天底下没有免费的午餐。各类网站都披上了为特殊需求的消费者服务的伪装外衣,打出了“收费网站—VIP会员专区”这张能大笔赚钱的“王牌”。正当网站经营者大赚特赚的时候,可苦了我们这些渴求学习更多知识,学习先进技术的穷学生。用辨证唯物主义的观点看问题,事物的发展都是相对的。“矛”和“盾”本身都是共同出现的。沿用到当代IT行业就出来了,搞“黑客的”和“网络安全的”、搞“软件编程的”和“软件破解的”,而相对“收费网站”就滋生出“网站破解”的一些网络爱好者。
这些“网站破解”的爱好者,也破解到的AB密码也公布到聚集着一些志同道合的人交流的网站“AB联盟网站”。而这些AB密码的破解,不外忽就是使用“AccessDiver”和“GoldenEye”这样的软件。使用国外的代理,在软件上挂上字典暴力破解,而字典的好坏和网站用户密码复杂度等很多客观因数有关。如果你的命够好,相信“功夫不辜有心人”一定能破解出来网站会员密码。
“收费网站”的会员登陆,一般能够分为两大类:
第一类:弹出式入口:弹出式入口是密码验证系统的一种方式,就是在进入会员区的时候弹出一个提示框让你输入用户名和密码进行登录。在“黑客基地”网站中点击“VIP会员专区”的连接中的某个教程,会弹出下图(图1-0)所示的一个用来输入用户名、密码的提示框,那就证明这个网站的入口是弹出式的。

第二类:表单式入口:表单式入口区别于弹出式入口,没有弹出式用户名、密码输入框,而是一个登录页面,采用form表单形式将用户输入的信息(用户名和密码)提交到一个验证地址去验证。
其实表单式入口的基本原理大致类似,也是要把你输入的信息发送到某个地址去验证。只不过表单式入口提供给你的输入方式不同,不像弹出式入口那样给你一个弹出式输入框,而是给你一个网页,里面有输入用户名和密码的地方。这个网页中输入用户名和密码的地方,在网页源文件中可以看到,是从<form……>开始到</form>结束的一段代码,在这段代码中定义了这个表单的发送方式、发送地址、发送数据等等信息。当你在网页中填好用户名和密码,点击登录按钮后,你输入的信息就被发送到form中定义的地址去验证。如果通过验证,允许你进入会员区。如果没有通过验证,进入错误提示页面,并且显示一些错误提示信息,让你重新输入。

几个基本概念:
表单式入口――区别于弹出式入口,没有弹出式用户名、密码输入框,而是一个登录页面,采用form表单形式将用户输入的信息(用户名和密码)提交到一个验证地址去验证。
提交地址――在表单式入口的登录页面中定义的,用来验证登录信息的地址。
Post data――发送数据,也就是发送到提交地址去验证的信息。
Keyword――关键字,是我们在验证返回信息中选择的,用来让AD进行识别的特殊信息。

因为表单式入口,可以使用动态网站编写代码实现,还可以使用某些后台管理网站程序,相对弹出式入口,浅显易懂。今天我就把弹出式入口网站服务的实现详细做下剖析,希望能对各位黑友和网管有所帮助。
经过偶长期的研究“弹出式入口”网站的服务搭建,经验总结可以分为Linux系统搭建的Apache服务器和Windows 系统搭建的IIS服务器、Apache服务器、以及第三方软件服务器搭建的四个类别。
一、 Linux系统
Apache服务器的目录安全认证
Apache实现身份认证的基本原理是:当系统管理员启动身份认证功能后,可以在要限制的目录中添加一个默认名“.htaccess"的文件。当用户访问该路径下的资源时,系统就会弹出一个对话框,要求用户输入“用户名/口令"。也就是说,它的身份认证功能不是人为由程序控制,而是由系统直接控制的。这样就避免了用户记录需要认证的资源的超级链接,不会下次直接访问资源。这样可做为专门管理网页存放的目录或做为会员区等。

测试环境:
操作系统:Red Hat Linux 9.0
内核版本:2.4.20-8
IP地址:192.168.10.36

前期准备,必须已经安装Apache
第1步:
我们在/var/www/html(apache的主页根目录)下建立一个vip目录
# mkdir /var/www/html/vip

第2步
然后我们编辑httpd.conf
添加
Alias /vip "/var/www/html/vip"
<Directory "/var/www/html/vip">
Options Indexes MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

注释:AllowOverride AuthConfig #表示进行身份验证 这是关键的设置(图1-1)

第3步
在要限制的资源的目录内创建并编辑.htaccess文件
# vi /var/www/html/vip/.htaccess
AuthName ″黑客X档案″
AuthType Basic
AuthUserFile /usr/local/apache/secrets/.htpasswd
AuthGroupFile /usr/local/apache/secrets/.htgroup
Require group hackbase
Require valid-user

注释:
AuthName #描述信息,您想显示的“领域名称”
AuthUserFile /usr/local/apache/secrets/.htpasswd #存放可以访问受限制的资源的用户名和密码
AuthGroupFile /usr/local/apache/secrets/.htgroup #存放可以访问受限制的资源的组名以及其中的用户
repuire group hackbase 、require valid-user 或者 require user frank #限制资源的组名、所有合法用户还是指定用户

密码文件推荐使用.htpasswd,因为apache默认系统对“.ht”开头的文件默认不允许外部读取,安全系数会高一点哦。

参数require group 指定哪些组的用户可以访问认证资源,这样,当再次访问需要认证的资源存在的目录时,系统就会弹出对话框,要求输入“用户名/口令"。(图1-2)

小知识:
基于用户名和密码的认证只是方法之一,时常会有不需要知道来访者是谁, 只需要知道来自哪里的情况。
Allow和Deny指令可以允许或拒绝来自特定主机名或主机地址的访问, 同时,Order指令告诉Apache处理这两个指令的顺序, 以改变过滤器。
这些指令的用法:
Allow from address
这里的address可以是一个IP地址(或者IP地址的一部分), 也可以是一个完整的域名(或者域名的一部分),还可以同时指定多个IP地址和域名。
比如,要拒绝兜售垃圾的站点:
Deny from 205.252.46.165
如此,这个指令所管辖的区域将拒绝来自该地址的访问。 除了指定IP地址,也可以指定域名,如:Deny from host.example.com
另外,还可以指定地址或域名的一部分来阻止一个群体:
Deny from 192.101.205
Deny from cyberthugs.com moreidiots.com
Deny from ke
Order可以组合Deny和Allow指令, 以保证在允许一个群体访问的同时,对其中的一些又加以限制:
Order deny,allow
Deny from all
Allow from dev.example.com
上例首先拒绝任何人,然后允许来自特定主机的访问。

第4步
编辑认证用的组文件:主要用于存放可以访问受限制的资源的组名以及其中的用户,用Vi编辑组文件.htgroup如下
hackbase : Hacker
hackbase : Cracker
hackbase : Programmer

存放在 /usr/local/apache/secrets/.htgroup路径下,其中hackbase是组名, Hacker、Cracker和 Programmer分别是组中的用户名。(图1-3)

第5步
建立用户文件:主要用于存放某一组中的用户名和口令
# htpasswd -c /usr/local/apache/secrets/.htpasswd Hacker

注释:htpasswd是Apache提供用于实现认证功能的程序,-c表示产生新的.htpasswd文件,如果存在同名旧文件,则覆盖旧文件。该程序将询问口令,键入“hello"然后重新确认口令。

第2次添加用户,就不用-c参数
如果你们想修改密码,可以如下
# htpasswd -m /usr/local/apache/secrets/.htpasswd Hacker

第6步
重新启动Http服务
# service httpd restart(图1-4)

至此,所有配置已经完成。访问Linux系统上的Http服务,查看实验效果。(图1-5)

在此提醒下读者朋友,请不要把.htgroup和.htpasswd文件等敏感文件放在网站目录下。有的文章直接放其放在和.htaccess文件同一个目录下,这种做法是非常不明智的。想破解网站的朋友都不需要破解了,直接把这两个文件下载下来就搞定了,哪里还有安全性可言^_^

小技巧:防止用户访问指定的文件
系统中有一些文件是不适宜提供给WWW用户的,如:.htaccess、htpasswd、*.pl等,可以用<Files>达到这个目的:
<Files .htaccess>
order allow,deny
deny from all
</Files>
用户访问控制三个.htaccess文件、.htpasswd和.htgroup(用于用户授权) ,为了安全起见,应该防止用户浏览其中内容,可以在httpd.conf中加入以下内容阻止用户对其进行访问:
<Files ~”/.ht”>
Order deny, allow
Deny from all
</Files>
这样这三个文件就不会被用户访问了。

二、 Windows系统
Ⅰ、基于IIS本身的目录安全认证
测试环境:
操作系统:Windows 2000 Advanced Server
IIS版本:IIS 5.0
IP地址:192.168.10.10

前期准备,必须已经安装IIS 5.0
如果您是管理员级的用户,你可以用一种简单的方法来实现密码验证。假设你安装的WEB服务器是IIS,你就可以通过IIS所提供的“Internet信息服务”进行目录安全设置。假设我把/Software设置成安全目录,首先启动“ Internet信息服务”,打开“默认web站点”,新建虚拟目录“Software”,接着右键"属性",接着在出现的“Software属性”窗口中,选取“目录安全性”选项,然后按下“匿名访问及验证控制”中的“编辑”按钮,将“匿名访问”按钮取消,选取“基本验证”,点击下方的“编辑”,输入“领域名称”(图2-0)。

接下来当上网者要浏览这个目录的网页时,浏览器就会显示"请输入用户名和密码"的窗口,要求用户输入用户名和密码,因为IIS验证的方法是与NT服务器结合在一起,只要是NT服务器的用户,就是IIS的用户,因此这里输入的用户名和密码是已经在NT服务器中建立的用户及对应的密码。用这种方法我们可以轻松实现对Software目录网页的密码验证(图2-1)。

如果是在大型公司内部,还可以结合“活动目录 Active Directory”更好的分配“域”中的用户计算机。由于这种方法IIS用户既是NT服务器用户,管理员可以建立个该目录的“用户群”统一分配权限、管理。可是这种方法就建立了太多的用户,虽然管理员能够把权限分配和密码复杂度都能得到很好,并且限制只有内网用户能够访问该服务器,但是还是有被使用系统漏洞本地提升权限的可能,所以我的意见是尽量不要使用这种方法。
Ⅱ、基于Windows系统的 Apache服务器
根据在Linux系统下Apache服务器实现身份认证的基本原理,个人意愿把这种方法移植到Windows系统上。通过实验完全符合要求,在此奉献给大家。
测试环境:
操作系统:Windows 2000 Advanced Server
Apache版本:Apache V2.0.48 for Windows
IP地址:192.168.10.1

第1步:编辑httpd.conf
加入
Alias /love/ "E:/love/"
#设置虚拟目录love到根目录
<Directory "E:/love/">
Options Indexes MultiViews
AllowOverride AuthConfig
Order Deny,Allow
Allow from all
Options All
AllowOverride All
</Directory>
本机目录为C:\Program Files\Apache Group\Apache2\conf\httpd.conf

第2步:在E:/love/下创建.htaccess文件
authtype basic
authname "魔女の条件"
authuserfile e:/love/.htpasswd
require valid-user

第3步:在E:/love/下创建密码文件
1.明文密码:
创建pass.txt
内容格式为:username:password
冒号前为用户名,后面为密码。如果放到其他目录,第2步中的authuserfile的目录也要相应的改动。
2.创建MD5加密的密码文件
在命令控制台Cmd下进入你的Apache目录下的bin目录,输入命令
htpasswd -c E:\love\.htpasswd hackxfiles
接下去要求输入两次密码
上面命令行的意思是在E:/love/下创建密码档.htpasswd 。
好了,现在重启Apache,在IE里访问love就要求输入用户名和密码了!(图3-0)

小技巧:创建.htaccess文件的方法
1、可以创建文本文档passwd.txt ,只要使里面的内容为
authtype basic
authname "魔女の条件"
authuserfile e:/love/.htpasswd
require valid-user
然后下面就是把文件改为.htaccess
“文件”??—“另存为”修改文件名为:.htaccess,保存类型为:所有文件。
2、方法同上,设置“文件夹选项”—“查看”—“隐藏已知文件类型的扩展名”的勾去掉,然后重命名passwd.txt为.htaccess也可以利用FTP客户端工具的方法,直接浏览本地目录,找到passwd.txt,重命名为.htaccess
3、使用ultraedit32 编辑内容
authtype basic
authname "魔女の条件"
authuserfile e:/love/.htpasswd
require valid-user
保存为.htaccess
4、由于Cmd中的Edit命令对中文的支持不是很好,所以用Edit编辑.htpasswd的方法在这不适用。

Ⅲ、基于Windows系统的第三方软件服务器
第三方软件OmniHTTPd Web服务器
oHTTPd有相当完备地进行目录安全性设置的功能。它可以将指定的浏览目录设为禁止所有用户使用;为不同的用户赋予不同的访问权限;仅禁止或仅允许某个目录或某些目录进行目录浏览等。

测试环境:
操作系统:Windows 2000 Advanced Server
OmniHTTPd版本:OmniHTTPd V2.10
所属公司:Omnicron Technologies Corporation (加拿大)
IP地址:192.168.10.1

由于OmniHTTPd版本低的原因,需要把系统时间修改为2004年1月1日之前的任意时间。为了实验方便,我就不安装DNS服务了,直接修改C:\WINNT \system32\drivers\etc\ hosts.sam文件,将“www.hackerxfiles.net对应到IP地址“192.168.10.1”上并保存修改。
设置方法:
第1步、运行“OmniHTTPd Administration” 管理器,选“添加”增加虚拟主机“www.hackerxfiles.net”,点击“编辑” 修改“www.hackerxfiles.net”的属性。在“服务器”选项中,将“服务器根目录”中的值改成“E:\kiss”。(图3-1)

第2步、增加虚拟目录:在“别名”选项中,在“虚拟目录”栏输入别名(如“/down”),在“实际路径”中输入其所在目录完整路径(如“E:\kiss\down”),再按“添加”即可。
第3步、选择安全类型:选“安全”选项,再选中“用户和目录”。它可以为不同的用户设置不同的权限,如果不选它,后面的几项设置均无法使用。选“用户与组”选项,在“会员下载中心”领域中新建“hacker”用户,注意:均区分大小写!设置目录属性:选“访问控制列表”选项。新建“受保护的路径”中输入虚拟目录名所在的路径“/down”;然后在“保护领域”中输入“会员下载中心”。(图3-2)

第4步、打开“/down”的目录属性窗口,再按“属性”(属性)进入“用户许可”选项,为用户“hacker”分配目录权限,并且删除列表中的“*”(允许所有用户享有默认的“Get”和“Post”权限),在“存取屏蔽”下只选中“只读”。
至此所有配置工作已经完成,重新启动OmniHTTPd Web服务器。在浏览器中访问虚拟主机“www.hackerxfiles.net”的其他任何目录均可以直接进入;但当试图打开“/down”或其下的任何一个目录或目录中的文件时,均会有密码提示窗口出现,输入相应用户名密码后方能进入(注意大小写),而不同的用户进入之后会拥有不同的权限。(图3-3)

黑客基地的“会员管理系统”是基于IIS网站服务器类的第三方软件搭建的,由于包涵了商业机密在此就详细介绍了。

综合上述的四类方案,“收费网站—VIP会员专区”的搭建也不过如此。如果黑友想破解网站密码,首先要判定的就是对方服务器的系统类型,在基于其搭建的原理下手。我想一定能起到事半功倍的作用。由于偶还很菜初来乍道的,才疏学浅。知识面不广和阅历还不够多,文章中有什么参差,还希望各位高手加以指点。我今后一定吸取经验教训,为广大黑友奉献更好更精的好文章。^_^

相关日志

楼被抢了 2 层了... 抢座Rss 2.0或者 Trackback

发表评论