asp中cookie欺騙/注入原理與防範

來源:互聯網
上載者:User

   ASP擷取參數主要有下面兩種:

  Request.QueryString (GET) 或 Request.Form (POST)

  我們有時為了簡化代碼,會寫成 ID=Request("ID"),正是因為這樣寫法出現了問題……

  原來WEB服務是這樣讀取資料的:

  先取GET中的資料,沒有再取POST中的資料,還會去取Cookies中的資料!這個我也才發現。

  通常的防注入系統,他會檢測GET和POST中的資料,如果有特殊字元就禁止資料的提交,而上面簡略寫法,就不會被check

  到。

  舉例說明,參數提交及擷取原理:

  /1.asp?id=123

  如果只輸:/1.asp 就不能看到正常的資料,因為沒有參數!

  想知道有沒有Cookies問題(也就是有沒有Request("XXX")格式問題)

  先用IE輸入:/1.asp載入網頁,顯示不正常(沒有輸參數的原因),之後在IE輸入框再輸入

  javascript:alert(document.cookie="id="+escape("123"));

  說明:

  document.cookie="id="+escape("123") 就是把 123 儲存到Cookies 的 ID 中。

  alert(xxx) 就是彈對話方塊。

  按斷行符號後,會看到彈出一個對話方塊 內容是: id=123,之後,重新整理網頁,如果正常顯示,表示是用Request("ID") 這樣的

  格式收集資料,就可以試Cookies注入了。

  在地址欄中輸入: javascript:alert(document.cookie="id="+escape("123 and 3=3"));

  重新整理頁面,如果顯示正常,可以再試下一步(如果不正常,就有可能也有過濾了)

  javascript:alert(document.cookie="id="+escape("123 and 3=4"));重新整理一下頁面如果不正常顯示,這就表示可以注入

  了。

  如果代碼是用Request.QueryString或Request.Form收集資料的話,是沒有Cookies注入問題的,因為服務程式是直截從

  GET或POST中讀取資料的,Cookies是否有資料代碼不會去擷取的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.