最近一直在研究关于文件上传的绕过,有感而发,所以写了这样一篇帖子,专门介绍关于文件上传的绕过。
环境:upload-libs(搭建方法网上一堆,这里就不在多嘴了)
由于我直接将系统做成了ubuntu,所以风格和windows可能不太像,见谅。另外,此帖与网上教程不同的是,这里会一步一步的带着你们做代码审计,非常适合新手看。
一、一句话木马
原理
可以说,世界上所有的漏洞都是由于开发人员的粗心而导致的。对于外人来说,这些听着觉得不可能,一个程序怎么会有漏洞呢?程序不都是规规矩矩的按照代码执行么?
对,没问题,但正是因为这种规矩,导致了很多问题的产生,举个例子来说吧。
如下,是一个很简单的c语言代码:
int main(){
system(“ls”);
return 0;
}
这段代码执行了一个很简单的指令,就是显示当前目录下的文件。
然而我们应该思考这样一个问题:
假如说,system函数中的参数是用户提交上去的,会发生什么事情呢?
答案显而易见。用户可以利用这个函数随意在我们的机器上执行命令,建后门,当肉鸡,挖矿……是非常恐怖的。
然而,在实际情况中,这样的事情是经常发生的。就比如,有一些网站会有上传文件的地方。我们远程控制其运行,之后在执行类似于system一样的函数,最终就成功读取到了服务器上的文件。
当然了,我们不可能直接上传一个c语言程序上去,因为你无法远程控制其执行。因此,最为方便的是写一个脚本,不需要编译,直接就可以运行的那种。想到了么?答案很明显了吧。
当然就是我们的php脚本啦。不光c语言有system函数,php怎么会没有呢?因此,只要你写一个类似于上面的代码,然后远程去执行,是不是就顶如获得了系统的权限?即使不能修改文件,看一看你服务器里面有什么,不也是值得的么?
因此,我们学到了一个新东西:一句话木马。
我在刚接触渗透的时候对这些完全是一脸蒙蔽。一句话木马是什么?为什么一句话木马上传到服务器上面就可以获得shell???等等等等,对这类问题很是不解。直到后来,学了一些php以后才明白,原理其实很简单。
先来理解什么叫一句话。
因为服务器有时候会对上传的东西做限制,因此,你需要写的代码特别短才可以传到服务器上面。久而久之,这个习惯就保留了下来,所以叫一句话。
接着理解木马。
木马就是可以进行非法控制别人机器的非法程序。
很好,能看到这里还不乱,说明你还是很有潜力学渗透的。我们继续往下看。
写法
先来看一个简单的。
eval($_GET['wzc']);
转自: