1. 程式人生 > >Web安全之XSS與SQL注入

Web安全之XSS與SQL注入

一、 前言

近幾年,伴隨網際網路的高速發展,對Web安全問題的重視也越來越高。Web應用所面臨的威脅來自很多方面,其中黑客的破壞是影響最大的,黑客利用Web應用程式存在的漏洞進行非法入侵,從而破壞Web應用服務,盜取使用者資料等,如何防範漏洞帶來的安全威脅是一項艱鉅的挑戰。
為了增強使用者的互動體驗,開發者們在Web應用程式中大量應用客戶端指令碼,使Web應用的內容與功能變得豐富有趣,然而隱藏的安全威脅隨之而來,黑客們將Web攻擊的思路從伺服器端轉向了客戶端,利用客戶端指令碼漏洞的攻擊變得越來越強大,如跨站指令碼(XSS)和SQL注入成為了眾多漏洞中最有針對性的攻擊目標。

白帽子與黑帽子

在安全圈子裡,素有“白帽”、“黑帽”一說。
黑帽子是指那些造成破壞的黑客,而白帽子則是研究安全,但不造成破壞的黑客。
作為白帽子,如何防範漏洞帶來的安全威脅?首先要先了解漏洞,先於攻擊者找到漏洞。下面對XSS和SQL注入簡單介紹。

二、XSS

XSS(Cross Site Scripting,跨站指令碼攻擊)是一類特殊的Web客戶端指令碼注入攻擊手段,通常指攻擊者通過“HTML注入”篡改了網頁,插入惡意的指令碼,從而在使用者瀏覽網頁時控制瀏覽器的一種攻擊。
當應用程式傳送給瀏覽器的頁面中包含使用者提供的資料,而這些資料沒有經過適當的轉義,或者在這些內容被顯示在頁面之前沒有驗證它們都是安全的,使得輸入被視為瀏覽器中的動態內容,就會導致存在跨站指令碼漏洞。

按照“資料是否儲存在伺服器”,XSS被分為:反射型XSS和儲存型XSS。
反射型XSS:
伺服器未對使用者請求引數做任何編碼或轉義處理,直接將引數作為響應的一部分輸出到頁面中。反射型XSS是一次性的,很容易實施釣魚攻擊,即誘使被攻擊者點選某條惡意連結就可觸發漏洞。
儲存型XSS:
攻擊者提供一個惡意負載輸入並在後臺儲存一段時間,一旦使用者訪問含惡意程式的網頁檔案便形成有效攻擊。富文字輸入空間,都有儲存型XSS的漏洞隱患,最嚴重可能導致XSS蠕蟲。

簡單測試指令碼檢測漏洞(XSS payload)

這裡寫圖片描述
將payload作為使用者輸入引數提交測試,這些payload的目的是閉合html的標籤,使瀏覽器彈窗。若伺服器對請求引數沒有過濾處理,即直接彈窗,那麼包含有惡意程式碼的響應資訊被瀏覽器直接解析執行,由此觸發XSS漏洞,且誤報率很低。
當然有些xss漏洞隱藏較深,並不能那麼容易檢測到,需要構造更加強大的payload繞過一些xss簡單過濾。

xss攻擊過程:

在確定可注入的xss漏洞之後,誘使使用者載入一個遠端指令碼,如將url的提交引數改為這裡寫圖片描述,攻擊者將真正的惡意負載寫在這個遠端指令碼中,避免直接在url的引數裡寫入大量的js的程式碼,通過惡意指令碼,進而控制使用者的瀏覽器,達到攻擊目的。

三、SQL注入

攻擊者通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。

sql注入漏洞檢測

手動注入:

1、在引數中輸入一個單引號”’”,引起執行查詢語句的語法錯誤,得到伺服器的錯誤回顯,從而判斷伺服器的資料庫型別資訊。根據資料庫型別構造sql注入語句。
例如一個get方式的url[ http://www.xxx.com/abc.asp?p=YY ]
修改p的引數值http://www.xxx.com/abc.asp?p=YY and user>0 ,就可以判斷是否是SQL-SERVER,而還可以得到當前連線到資料庫的使用者名稱。
http://www.xxx.com/abc.asp?p=YY&n … db_name()>0 不僅可以判斷是否是SQL-SERVER,而還可以得到當前正在使用的資料庫名
2、盲注,大部分時候web伺服器關閉了錯誤回顯。
http://www.xxx.com/abc.asp?p=1 and 1=2 sql命令不成立,結果為空或出錯
http://www.xxx.com/abc.asp?p=1 and 1=1 sql命令成立,結果正常返回
以上兩個測試成功後,可以判斷負載的sql被執行,存在sql注入漏洞。

下面是某網站漏洞示例
手動注入網站登入密碼(‘or’1’=‘1)併成功進入管理後臺。
這裡寫圖片描述
這裡寫圖片描述

自動化工具檢測注入

SQLmap–檢測與利用SQL注入漏洞的免費開源工具
sqlmap.py –u 【指定url 】 –cookie –dbs //列出資料庫
sqlmap.py –u 【指定url 】 - D 【資料庫名】- -tables //列出某個庫的資料表
sqlmap.py –u 【指定url 】 -D 【資料庫名】-T 【資料表名】 –columns //列出資料表的列名
sqlmap.py –u 【指定url 】 -D dvwa -T users-C user,password –dump //把使用者名稱密碼列出來(sqlmap自動破解密碼)
某網站拖庫示例
這裡寫圖片描述

隨著網際網路的發展,對Web安全的防護的重視是必然趨勢,歡迎大家一起學習交流。

相關推薦

Web安全XSSSQL注入

一、 前言 近幾年,伴隨網際網路的高速發展,對Web安全問題的重視也越來越高。Web應用所面臨的威脅來自很多方面,其中黑客的破壞是影響最大的,黑客利用Web應用程式存在的漏洞進行非法入侵,從而破壞Web應用服務,盜取使用者資料等,如何防範漏洞帶來的安全威脅是一

Web攻防XSS,CSRF,SQL注入

 copy to:https://www.cnblogs.com/drawwindows/archive/2013/03/11/2954259.html   摘要:對Web伺服器的攻擊也可以說是形形色色、種類繁多,常見的有掛馬、SQL注入、緩衝區溢位、嗅探、利用IIS等針對Webser

Web安全CSFRXSS

CSFR CSFR(Cross-Site Request Forgery跨站點偽造請求)是一種網路攻擊方式。攻擊者在使用者已經登入目標網站之後,誘使使用者訪問一個攻擊頁面,利用目標網站對使用者的信任,以使用者身份在攻擊頁面對目標網站發起一些惡意請求(如惡意發帖、改密碼、發郵件等),達到攻

web安全CSRFXSS

CSRF 1、CSRF的基本概念、縮寫、全稱 CSRF(Cross-site request forgery):跨站請求偽造。 PS:中文名一定要記住。英文全稱,如果記不住也拉倒。 2、CSRF的攻擊原理 開啟百度App,看更多美圖 使用者是網站A的註冊使用者,且

java專家路(四)——Web安全——Xss注入類風險

簡介: 1. XSS攻擊原理 XSS原稱為CSS(Cross-Site Scripting),因為和層疊樣式表(Cascading Style Sheets)重名,所以改稱為XSS(X一般有未知的含義,還有擴充套件的含義)。XSS攻擊涉及到三方:攻擊者,

web安全(4)-- sql注入

1.1 漏洞描述     所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。具體來說,它是利用現有應用程式,將(惡意)的SQL命令注入到後臺資料庫引擎執行的能力,它可以通過在Web表

Web安全xss

1>XSS漏洞是Web應用程式中最常見的漏洞之一。如果您的站點沒有預防XSS漏洞的固定方法,那麼就存在XSS漏洞。這個利用XSS漏洞的病毒之所以具有重要意義是因為,難以看到XSS漏洞的威脅,而該病毒則將其發揮得淋漓盡致。 2>XSS攻擊分為兩類,一類是來自內部的攻擊,主要指的是利用程式

Web安全XSS Platform搭建及使用實踐

一、背景 XSS Platform 是一個非常經典的XSS滲透測試管理系統,原作者在2011年所開發,由於後來長時間沒有人維護,導致目前在PHP7環境下無法執行。 筆者最近花了一點時間將原始碼移植到了PHP7環境中,同時增加安裝功能;另外還修復之前的程式碼的一些不嚴謹語法的問題,並調整了一些表單的樣式,同

web安全 xss攻擊

xss攻擊的全稱是Cross-Site Scripting (XSS)攻擊,是一種注入式攻擊。基本的做法是把惡意程式碼注入到目標網站。由於瀏覽器在開啟目標網站的時候並不知道哪些指令碼是惡意的,所以瀏覽器會無差別執行惡意指令碼,從而導致使用者資訊和一些敏感資訊被盜取和洩漏

web安全XSS和CSRF

分布 cookie 多個 token 成本高 手機 短信 網絡 白名單 WEB安全方向 瀏覽器沙箱機制xss反射型,存儲型,這個更多是後端xss DOM Based,前端處理,decodeURIComponent賦值給InnerHTML xss防禦:認證cookie,設

web安全XSS攻擊原理及防範

閱讀目錄 一:什麼是XSS攻擊? 二:反射型XSS 三:儲存型XSS 四:DOM-based型XSS 五:SQL注入 六:XSS如何防範? 1. cookie安全策略 2. X-XSS-Protection設定 3. XSS防禦HTML編碼 4. XSS 防禦HTML Attrib

安全防禦xssSQL注入CSRF攻擊

XSS攻擊 個人理解,專案中最普通的就是通過輸入框表單,提交js程式碼,進行攻擊例如在輸入框中提交 <script>alert("我是xss攻擊");</script>,如果沒有防御措施的話,就會在表單提交之後,彈出彈窗 防禦措施,目前我主要是用一個過濾器,將特殊字元進行轉

Web安全SQL注入攻擊技巧防範

在Web1.0時代,人們更多是關注伺服器端動態指令碼語言的安全問題,比如將一個可執行指令碼(俗稱Webshell)通過指令碼語言的漏洞上傳到伺服器上,從而獲得伺服器許可權。在Web發展初期,隨著動態指令碼語言的發展和普及,以及早期工程師對安全問題認知不足導致很多”安全血案”

Web安全SQL注入

條件 使用者可以接觸並修改傳送到伺服器的內容 URL判斷 and 1=1 and 1=2 依據返回資訊判斷 整形 ’ 同上 字元型判斷 -1 / +1 回顯上個頁面 整形 and sleep(12)

python Web安全防止SQL注入

伴隨著Web2.0、社交網路、微博等一系列新型網際網路產品的興起,基於Web環境的網際網路應用越來越廣泛,Web攻擊的手段也越來越多樣,Web安全史上的一個重要里程碑是大約1999年發現的SQL注入攻擊,之後的XSS,CSRF等攻擊手段愈發強大,Web攻擊的思路也從服務端轉向了客戶端,轉向了瀏覽器和

【白帽子講web安全】關於XSS,CSRF,SQL注入

1.XSS 分類:      1.反射型:給使用者傳送頁面或者連結,讓使用者點選來進行攻擊      2.儲存型:把攻擊存放在服務端,可能造成傳播(比如部落格系統,每個訪問該頁面的人都有可能被攻擊),主動性更強      3.DOM型:本質上是反射型,但是是通過使用者點

Web安全SQL注入

什麼是SQL注入? sql注入是一種將sql程式碼新增到輸入引數中,傳遞到sql伺服器解析並執行的一種攻擊手法 SQL是怎麼產生的? WEB開發人員無法保證所有的輸入都已經過濾攻擊者利用傳送給SQL伺服器的輸入資料構造可執行的SQL程式碼資料庫未做相應安全配置 如

Web安全越權操作:橫向越權縱向越權

localhost new 用戶修改 情況 name 查看 普通用戶 新的 登錄 參考:http://blog.csdn.net/github_39104978/article/details/78265433 看了上面的文章,對越權操作的概念還是比較模糊,不明確實際場景。

web安全SQL註入

password 嚴格 add code 數據 檢查 star 代碼 輸入數據 一、如何理解SQL註入? SQL註入是一種將SQL代碼添加到輸入參數中 傳遞到SQL服務器解析並執行的一種×××手法 二、SQL註入是怎麽產生的? WEB開發人員無法保證所有的輸入都已經過

Web安全跨站腳本攻擊(XSS

sca 各類 隱藏 word create 十六 請求 後臺 轉換成 XSS 簡介 跨站腳本攻擊,英文全稱是 Cross Site Script,本來縮寫是CSS,但是為了和層疊樣式表(Cascading Style Sheet,CSS)有所區別,所以在安全領域叫做“XSS