<返回更多

黑客远程代码执行,你的服务器还安全嘛?

2019-11-07    
加入收藏

今天给大家讲解一下命令执行和代码执行漏洞的危害以及详解步骤。

代码执行和命令执行是有区别的,一个叫命令,一个叫代码,代码执行的话,一般指的是执行代码

命令执行的话,一般都是执行我们电脑上面的cmd命令,也就是dos命令,所以它们是有这种区别的

1、首先是代码执行漏洞

1)、代码执行漏洞详解

代码执行漏洞造成的原理是由于服务器端没有针对执行函数做过滤,导致在没有指定绝对路径的情况下就执行命令,可能会允许攻击者通过改变 $PATH 或程序执行环境的其他方面来执行一个恶意构造的代码。

造成代码执行相关的函数分别是:eval、assert函数,它和我们前段日子讲的一句话木马是一样的。

都带有eval这个函数,那这个eval能干嘛呢?它就是能将后门代码给执行。

黑客远程代码执行,你的服务器还安全嘛?

 

、eval函数的作用

然后可以看到,只要把php代码放到eval函数里面,它就可以执行,它和assert的作用是一样的,都是执行代码的一个函数,我们上次讲的一句话木马,一句话木马不只是只有eval函数去执行代码,也有很多方法去执行。

黑客远程代码执行,你的服务器还安全嘛?

 

代码执行的详细操作

那我们就直接写一个代码,比如说他这个,我们先$id = $_GET['x']; 然后用eval包含他这个$id变量,然后我们打开网站,然后传个值

比如说echo 1;然后它就输出1出来了

黑客远程代码执行,你的服务器还安全嘛?

 

那我们像上次叫一句话木马的时候一样,直接输出一个phpinfo,它都可以成功的输出在页面中,说明执行phpinfo()函数代码成功。

黑客远程代码执行,你的服务器还安全嘛?

 

那我们可以像上次讲到的一样,通过直接调用执行命令的函数,那么就可以做到提权的一个效果,当然,当前的权限要够大的情况下才可进行一方面的提权操作

黑客远程代码执行,你的服务器还安全嘛?

 

不仅仅是这样的去提权,那假如说我们怎么写入一句话木马???

那我们的话,可以通过file_put_contents函数写入一个文件,那么的话,前面写上一句话木马,通过file_put_contents定义一个绝对路径,绝度路径的话我们可以通过system函数执行命令去查看

黑客远程代码执行,你的服务器还安全嘛?

 

然后就可以看见我们的一句话木马成功的写入了上去。

黑客远程代码执行,你的服务器还安全嘛?

 

所以说它这个漏洞是相当的大

程序员在开发cms网站的时候,eval,assert等等函数后存在可控变量,会导致代码执行漏洞,这几个漏洞都是存在一个可控变量,就是当它存在一个可控制的变量,我们控制它,就可以显示其它的内容,那这样的话,我们想干嘛就干嘛,写入一句话也行,这些等等

如何去挖掘出代码执行的漏洞?

还是一样,我们前期的一个信息收集可以使用扫描工具,发现有eval这些东西,第二个,我们上网百度一下他这个网站cms程序的时候,因为进行信息收集之后,我们可以看看当前的cms有没有存在一个代码执行的一个漏洞,那么这个就是一个代码执行的漏洞一个全部步骤

接下来是命令执行

命令执行漏的详解

命令执行的话,一般都是执行我们电脑上面的cmd命令,也就是dos命令,所以它们是有这种区别的,Exec, shell_exec , system等函数引起的漏洞,程序员在开发cms网站时,函数后存在可控变量,会导致命令执行漏洞,代码执行执行的是代码,命令执行执行的是电脑上面的cmd

那我们还是一样,定义一个变量,然后用shell_exec函数包含起来。

黑客远程代码执行,你的服务器还安全嘛?

 

在这里我们执行一个ipconfig的命令,它成功的输出了,我们执行命令,前提要搞清楚当前的服务器是什么系统,是windows还是linux,因为两者不同的系统要着不同的命令,所以我们在Windows上面执行的是dos命令,命令不同,要区分开

黑客远程代码执行,你的服务器还安全嘛?

 

比如说net user 它都可以执行的

所以说,这些函数要引用的话,是非常容易出现漏洞的,只要说这个函数引用的话,它的对象要去执行什么东西的时候,它的对象是存在一个可控变量的,如果说它这里可以控制这个变量,就指定去输出你想要的东西,那完全可以对这个网站进行入侵的吧

黑客远程代码执行,你的服务器还安全嘛?

 

我们写入一个文件 到d盘,文件名可以任意取,然后我们可以看到,d盘有写入了一个文件,那这样说的话,我们不是可以上传一句话等等一些操作,这和代码执行是不一样的,代码执行是执行php代码,而命令执行是执行dos命令。

黑客远程代码执行,你的服务器还安全嘛?

 

那我们就了解一下linux通过命令写入文件

我们可以看到,在这里';'的用法就是先执行他前面的命令,直到前面命令执行完(无论对与错)就立即执行后面的命令

黑客远程代码执行,你的服务器还安全嘛?

 

我们输入错误看看

黑客远程代码执行,你的服务器还安全嘛?

 

我们也可以用'|'的

上一条命令的输出,作为下一条命令参数

黑客远程代码执行,你的服务器还安全嘛?

 

当然我们去挖掘这方面漏洞时候,前期的信息收集很重要,因为这些漏洞一般都出现在脚本语言自带的框架、cms以及一些未知的插件上面,那么的话,我们去收集了当前网站的一些架构之后,那么我们就可以利用这些已经出来的漏洞进行检测有没有存在危害漏洞。

那么的话,命令执行和代码执行漏洞,就是因为这些函数引起来的,我们要看一下有没有这个函数,有了这个函数,它不一定有漏洞,要看这个函数的后面有没有存在可控制的变量,就是有没有变量去控制想输出什么和执行什么?有的话,它没有过来,我们就可以去执行这些命令。

最后喜欢我文章的朋友请加圈子关注我们,私信关键词:加群。

就会自动分享给你群号。欢迎大家加入我们的安全大家庭。提高大家的安全意识,提升大家的网络安全技能一直是我们的初衷和愿景,让我们共同成为守护信息世界的"SaFeMAN"。

还有可以关注我们微信公众号,在公众号上输入安界网,就可以关注到我们。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>