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

安全基础
网络协议分析软件的编写
一个SYN攻击的源程序
彻底清查带毒的Cookie
解析cookie欺骗实现过程及具体应用
从芯认识 浅谈宽带路由器处理芯片
搜索引擎也另类 想搜啥就搜啥
命令提示符恢复本地安全策略小技巧
根据PID查杀木马病毒的适用小方法
网络管理员日志之硬件修理篇
著名黑客Kevin Mitnick谈网络安全
Windows XP 常见的进程列表
网络攻击概览
爱机中毒自救六招
引起网络广播风暴的几种原因
黑客入侵36计
局域网测试及故障排除经验谈
不可忽视的BIOS参数设置
微软IE浏览器非常规修改全攻略(上)
微软IE浏览器非常规修改全攻略(下)
网管十招

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-28   浏览: 76 ::
收藏到网摘: 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