按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
可以上传文件。
下面了解下“MemStatus”参数的来处。在Dreamweaver中打开该博客网站中的“mond。asp”文件,并在其中找到对用户“Cookie”进行验证的实现代码。
IFmemNameEmptyThen
DimCheckCookie
SetCheckCookie=Server。CreateObject(〃ADODB。RecordSet〃)
SQL=〃SELECTmem_Name;mem_Password;mem_Status;mem_LastIPFROMblog_MemberWHEREmem_Name='〃&memName&〃'ANDmem_Password='〃&memPassword&〃'ANDmem_Status='〃&memStatus&〃'〃
CheckCookie。OpenSQL;Conn;1;1
SQLQueryNums=SQLQueryNums+1
IfCheckCookie。EOFANDCheckCookie。BOFThen
Response。Cookies(CookieName)(〃memName〃)=〃〃
memName=Empty
Response。Cookies(CookieName)(〃memPassword〃)=〃〃
memPassword=Empty
Response。Cookies(CookieName)(〃memStatus〃)=〃〃
memStatus=Empty
Else
IfCheckCookie(〃mem_LastIP〃)Guest_IPOrisNull(CheckCookie(〃mem_LastIP〃))Then
Response。Cookies(CookieName)(〃memName〃)=〃〃
memName=Empty
Response。Cookies(CookieName)(〃memPassword〃)=〃〃
memPassword=Empty
Response。Cookies(CookieName)(〃memStatus〃)=〃〃
memStatus=Empty
EndIf
EndIF
CheckCookie。Close
SetCheckCookie=Nothing
Else
Response。Cookies(CookieName)(〃memName〃)=〃〃
memName=Empty
Response。Cookies(CookieName)(〃memPassword〃)=〃〃
memPassword=Empty
Response。Cookies(CookieName)(〃memStatus〃)=〃〃
memStatus=Empty
EndIF
上述代码主要用于验证用户输入的用户名是否在数据库的管理员的表中。如果存在则将该用户的Cookie信息写入到memStatus和其他几个标识中。
而写入的这些标识信息又会被下面的代码所调用:
DimmemName;memPassword;memStatus
memName=CheckStr(Request。Cookies(CookieName)(〃memName〃))
memPassword=CheckStr(Request。Cookies(CookieName)(〃memPassword〃))
memStatus=CheckStr(Request。Cookies(CookieName)(〃memStatus〃))
当成功调用后,就会将最终的结果传递给上传程序,再进行上传权限判断。从整个验证过程可知,上传用户权限信息全由Cookie提供,下面是验证用户名和密码的具体实现代码:
IFmemNameEmptyANDSession(〃GuestIP〃)Guest_IPThen
DimCheckCookie
SetCheckCookie=Server。CreateObject(〃ADODB。RecordSet〃)
SQL=〃SELECTmem_Name;mem_Password;mem_Status;mem_LastIPFROMblog_MemberWHEREmem_Name='〃&memName&〃'ANDmem_Password='〃&memPassword&〃'ANDmem_Status='〃&memStatus&〃'〃
CheckCookie。OpenSQL;Conn;1;1
SQLQueryNums=SQLQueryNums+1
IfCheckCookie。EOFANDCheckCookie。BOFThen
Response。Cookies(CookieName)(〃memName〃)=〃〃
memName=Empty
Response。Cookies(CookieName)(〃memPassword〃)=〃〃
memPassword=Empty
Response。Cookies(CookieName)(〃memStatus〃)=〃〃
memStatus=Empty
Else
IfCheckCookie(〃mem_LastIP〃)Guest_IPOrisNull(CheckCookie(〃mem_LastIP〃))Then
Response。Cookies(CookieName)(〃memName〃)=〃〃
memName=Empty
Response。Cookies(CookieName)(〃memPassword〃)=〃〃
memPassword=Empty
Response。Cookies(CookieName)(〃memStatus〃)=〃〃
memStatus=Empty
EndIf
EndIF
CheckCookie。Close
SetCheckCookie=Nothing
Else
Response。Cookies(CookieName)(〃memName〃)=〃〃
memName=Empty
Response。Cookies(CookieName)(〃memPassword〃)=〃〃
memPassword=Empty
Response。Cookies(CookieName)(〃memStatus〃)=〃〃
memStatus=Empty
EndIF
对用户和密码判断流程是:如果用户Cookie信息中的memName值不为空,就从数据库验证用户名和密码,如果验证出错,则清空Cookie信息。上述验证程序并没有考虑MemName为空的情况,如果MemName为空,则Cookie信息是不被清空的。
由于文件上传页面只对memStatus进行验证,黑客手工将menStatus的值修改为“SupAdmin”或“Admin”就可以拥有上传权限了。
(2)利用Cookie欺骗获得上传权限
在网上搜索“PoweredbyL…BlogV1。08”程序,可搜索到很多使用“L…Blogv1。08(SE)Build0214”程序的博客网站。由于这些网站存上一个上传漏洞,因此,可以利用Cookie欺骗来获得这些网站的上传权限。下面以网络上搜索到的任意一个使用“L…Blogv1。08(SE)Build0214”程序的博客网站为例,介绍实现Cookie欺骗攻击的具体操作方法。
步骤01打开搜索到的博客网站,进入其首页中,单击“用户登陆”区域中的【注册】按钮,注册一个新用户。
步骤02进入“用户注册”页面,在其中输入用户名“shuangyuzuo7”,密码“123456”及电子邮箱。单击【提交】按钮,即可成功注册该用户并登录到博客网站中。
步骤03从网上下载并运行“老兵Cookies欺骗工具”,在其地址栏中输入该博客网站登录界面的地址,并单击【连接】按钮,即可显示“登陆成功”界面。在“老兵Cookies欺骗工具”主窗口中的“Cookie”文本框中看到当前页面的Cookie信息:
loveyuki%5Fzzwb=memPassword=E10ADC3949BA59ABBE56E057F20F883E&memStatus=Member&memName=shuangyuzuo7;ASPSESSIONIDSCQCDRRB=NOJMGPADFOCHCOFAABOJJMOM,其中包含了登录的用户名和密码等信息。黑客可以对Cookie信息进行修改,欺骗Blog程序,使其认为登录用户的身份是管理员。
步骤04单击工具栏中的【设置自定义的Cookies】按钮,即可对Cookie信息进行修改。将Cookie信息中的“memStatus=Member&”修改为“memStatus=SupAdmin”或“memStatus=Admin”。
步骤05继续保持【设置自定义的Cookies】按钮处于按下状态,退出当前的用户登录,重新打开Blog首页,虽然此时没有登录,但已具有管理员的权限。
获得管理员权限后,黑客即可利用专门的漏洞上传工具将ASP木马上传到Blog服务器上,进而对网站进行攻击。
第二章 局域网中的ARP欺骗与防范
在局域网中,通过ARP协议可以完成IP地址转换为第二层物理地址(即MAC地址)。通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞。为了防止计算机遭受ARP欺骗,用户还应该掌握一些防范软件的使用方法,利用它们来截获ARP攻击。
10。2。1认识ARP
ARP是“AddressResolutionProtocol”的缩写,即地址解析协议,它是一种将IP地址转化成物理地址的协议。在TCP/IP网络环境下,每个主机都分配了一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址。
为了让报文在物理网路上传送,必须知道对方目的主机的物理地址。这样就存在把IP地址变换成物理地址的地址转换问题。具体说来,ARP就是将网络层(IP层,相当于OSI的第三层)地址解析为数据连接层(MAC层,相当于OSI的第二层)的MAC地址。
在局域网中,网络中实际传输的是“帧”,帧里面有目标主机的MAC地址。在以太网中,一个主机要和另一个主机进行直接通信,除要知道目标主机的网络层逻辑地址(如IP地址)外,还必须要知道目标主机的MAC地址。
而这个目标MAC地址就是通过地址解析协议获得的。关于“地址解析”的含义,可以这样来解释,就是主机在发送帧之前,将目标IP地址转换成目标MAC地址的过程。
10。2。2ARP协议工作原理
在能够正常上网的计算机中,都安装有TCP/IP协议,这些电脑里都有一个ARP缓存表,表里的IP地址与MAC地址是一一对应的。
ARP协议的工作原理:假如IP地址为192。168。1。3的某主机A要向IP地址为192。168。0。7的主机B发送数据,这时主机A就会先来查询本地的ARP缓存表,如果找到主机B的IP地址对应的MAC地址00…73…44…60…db…69,就会进行数据传输。