[关闭]
@1kbfree 2018-10-06T17:21:26.000000Z 字数 599 阅读 1321

代码审计之代码执行漏洞详解

代码审计


eval函数定义

eval()函数把字符串按照 PHP 代码来计算,这就是代码执行漏洞的起因

eval(phpcode)

代码执行的危害

  1. 执行客户输入的代码
  2. 让网站写shell
  3. 还可以控制服务器

开始了解代码执行漏洞

首先,我们先看看eval()的小案例1:

代码:

1-eval函数小案例代码.png-6.8kB

效果:

2-eval函数小案例效果.png-11.4kB

因为这里他把GET请求传递过去的值赋值给$ret。这里就是将里面的\$ret = $name;当作代码来执行了

我们再输入phpinfo()试试:

3-eval函数小案例代码phpinfo.png-75.6kB

这样子我们就可以输入一句话木马来getshell了

小案例2:

首先我们需要先看看strtolower()用法:

代码:

image_1cahk4sr61lsh1fg21cko10cm1osl9.png-5.4kB

效果:

image_1cahk6pm61c8g1fq31tvd1k711kagm.png-16.9kB

代码(注意看白色区域):

image_1cahl5atdtva1m50f1a1m0i6ln1p.png-10.5kB

我们先输入phpinfo()试试:

image_1cahli3osera1i6rg3i51u1e2v26.png-12.4kB

可以看到,这里没有任何效果,因为之前的$name被''括起来了,所以我们只能闭合这个单引号来尝试了

闭合单引号:

image_1cahlla7de2e1c7dae11psq1sgl2j.png-11.5kB

这里的1');只是为了闭合前面的单引号,而后面的//是注释掉后面的单引号,如果不注释,那么将会报错

闭合单引号输出phpinfo():

image_1cahlq0fc1k8tkbk1sav3d844o30.png-105.5kB

这个时候我们相当于执行了:

image_1cahmcbe13k91edd6il1gcr16en5h.png-11.4kB

小案例3:

代码(这是被双引号括起来的):

image_1cahm44s71r7u1a308711l801lbo3t.png-10.7kB

我们试试闭合双引号(原理和前面的相同):

image_1cahm5nouoqahjg1vrg1evd6ka4a.png-11.9kB

闭合双引号输出phpinfo():

image_1cahm73r7213he3jg7111i1lb04n.png-107.1kB

我们还可以利用双引号中可执行可变变量来输出 phpinfo():

先看看什么是双引号中可执行可变变量:

image_1cahmoela1s5j1b4hl7kq2ilkrm.png-9.6kB

输出phpinfo():

image_1cahmiq5a67a60u15tut5k11om9.png-94.3kB

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注