利用DNSLOG注入突破無回顯盲注

2021-10-01 14:06:16 字數 3410 閱讀 2717

sql注入介紹:sql注入介紹

注入產生原因:web應用程式對使用者輸入資料的合法性沒有判斷或過濾不嚴,導致惡意payload直接帶入sql語句執行,從而執行payload中非法操作!

新建php檔案,將下面**複製到php檔案中,在瀏覽器中訪問即可

<?php 

$host

='127.0.0.1'

;$dbuser

='root'

;$dbpass

='root'

;$dbname

='test'

;$con

=new

mysqli

($host

,$dbuser

,$dbpass

,$dbname);

if($con

->

connect_error)if

(isset

($_get

['id'])

&&!empty

($_get

['id'])

)else

$sql

="select id,title,content from t_feedback where id='$id

' limit 0,1"

;$result

=$con

->

query

($sql);

if($result

->

num_rows

>0)

else

echo

"your sql syntax: "

.$sql

;$con

->

close()

;

dnslog注入需使用 ==load_file()==函式(需高許可權),有自己的網域名稱可以自己搭建dns網域名稱解析,也可使用免費的 ceye 平台,登入後在個人資訊中會得到乙個隨機的二級網域名稱 (identifier) ,如下圖:

通過 concat() 拼接函式,查詢資料庫名, *** 為自己的二級網域名稱,, — 可自定義(也可不寫),當語句執行後,在 ceye dns query 介面便可檢視爆出的資料庫資訊,關鍵payload:

查詢資料庫表名,關鍵payload:

查詢資料庫表列名資訊,關鍵payload:

查詢資料庫表第一條使用者資訊,關鍵payload:

由於此處傳入 id 值為 int 型別,sql語句中 id 值拼接使用了 』 ,在mysql中, where id=『1』 會自動將id值轉為int型,此處既可使用 intval() 函式將接收的引數值強制轉換為 int 型,亦可防止特殊字元的輸入。

方法一:將$id = $_get['id'];改為$id = intval($_get['id']);即可。

方法二:配置 php.ini 開啟 magic_quotes_gpc 或使用php中 addslashes() 函式,轉義特殊字元,防止注入。注意:若資料庫字元編碼為gbk可使用寬位元組注入繞過,此指令碼中,$id = $_get['id'];改為$id = get_magic_quotes_gpc() ? $_get['id'] : addslashes($_get['id']);即可。為了防止寬位元組繞過,可在連線資料庫**後加上$con->query("set names utf8");

修改後php**如下:

<?php 

$host

='127.0.0.1'

;$dbuser

='root'

;$dbpass

='root'

;$dbname

='test'

;$con

=new

mysqli

($host

,$dbuser

,$dbpass

,$dbname);

if($con

->

connect_error)if

(isset

($_get

['id'])

&&!empty

($_get

['id'])

)else

$sql

="select id,title,content from t_feedback where id='$id

' limit 0,1"

;$result

=$con

->

query

($sql);

if($result

->

num_rows

>0)

else

echo

"your sql syntax: "

.$sql

;$con

->

close()

;

——捨心

xxe 回顯與無回顯

學習於紅日安全 一 有回顯 1 直接將外部實體引用的uri設定為敏感目錄 xxe 2 將外部實體引用的 url 設定到本地伺服器,本地構建惡意 dtd 檔案,遠端注入 xxe evil 外部 evil.dtd 中的內容 二 無回顯可以使用外帶資料通道提取資料,先使用 filter 獲取目標檔案的內容...

mysql錯誤回顯注入 sql注入 顯錯注入

前提知識 資料庫 就是將大量資料把儲存起來,通過計算機加工而成的可以高效訪問資料庫的資料集合 資料庫結構 庫 就是一堆表組成的資料集合 表 類似 excel,由行和列組成的二維表 字段 表中的列稱為字段 記錄 表中的行稱為記錄 單元格 行和列相交的地方稱為單元格 在資料庫裡有乙個系統庫 inform...

mysql手工注入 有回顯

頁面源 分析 定義了乙個變數 id來接受通過get方式傳遞來的id值,在變數 sql裡沒有進行過濾直接把使用者輸入的id值傳入了進去,當使用者傳入惡意id引數1 的時候變數 sql裡就變成了這樣 if isset get id id get 1 fp fopen result.txt a fwrit...