大家第一步要注重的一点便是代码执行与命令执行并不是同一个定义,若说二者真有哪些关联性之处,那就是,二者在应用程序的代码中通常全是启用有关语言表达的函数,这种函数全是同级的,沒有差别。
若大家更加深入地调查二者之间的区别便会发觉,一个是脚本制作代码方面的执行,一个是系统软件方面的cmd命令(或是bash命令)的执行。
代码执行或者命令执行一般是根据代码财务审计来获得一些系统漏洞,例如对Discuz!、DedeCms及PHPCMS等操作系统开展代码财务审计。该流程可以发觉某点代码存有SQL引入系统漏洞,随后客户提交一个刻意结构的SQL句子到正常的SQL逻辑性中,进而完成引入,这实际上也是一个将客户提交的数据信息作为代码来执行的全过程,因此,它称为代码执行。
命令执行便是启用一些可以执行系统软件命令的函数来完成在系统软件方面加上帐户、改动账户密码及安裝rootkit等实际操作。
代码执行就是指网络攻击根据电脑浏览器或是别的客户端提交一些客户自身构建的PHP代码至客户端程序,服务器程序根据eval、assert及reg_replace等函数执行客户提交的PHP代码。
实际上,代码执行是一个很宽广的定义,大家平常所看到的SQL引入(SQL代码执行)、跨站脚本制作(JS或是HTML代码执行)等系统漏洞全是代码执行系统漏洞。小范围而言,eval/assert函数的执行归属于代码执行,而system、exec、shell_ exec及passthru函数的执行,则应属于命令执行。
eval或是assert函数代码执行。开启浏览器,键入http://localhost:81/code_exec.php?a=phpinfo。这时,大家提交的PHP代码phpinfo;被eval或是assert函数取得成功分析了,Web服务端回到信息内容如下图1所显示。
图1 执行phpinfo函数
扫码咨询与免费使用
扫码免费用
申请免费使用
在线咨询