首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Python反转XOR Javascript混淆函数

用Python反转XOR Javascript混淆函数
EN

Stack Overflow用户
提问于 2019-08-13 03:50:29
回答 1查看 358关注 0票数 0

所以我看了一个被入侵的WordPress站点,看到了这个注入的js。它基本上有一轮混淆(charCodeAt(13-3,9-2,等等)。然后,它输出以下内容:

代码语言:javascript
运行
复制
var key = 'eooquewZmf';
var enced = '<encoded_base64_blob>';

function xor_enc(string, key) {
  var res = '';
  for (var i = 0; i < string.length; i++) {
    res += String.fromCharCode(string.charCodeAt(i) ^ key.charCodeAt(i % key.length));
  }
  return res;
}

我真的是想通过用Python编写一个去模糊处理程序来理解模糊处理技术,而不仅仅是通过运行JS文件并获取明文来获取明文数据。

所以我首先试着理解代码到底发生了什么:

变量

key = xor key,enced =要解码的文本

函数

xor_enc似乎接受了两个论点,"string“和"key”。变量"res“是一个空字符串A for循环被初始化,并且将从0到字符串的长度,"res”变量一次一个字符将被填充:

a) "string“的每个字符将被转换为一个字符b)以密钥的完整长度(10个字符)表示i%(模数)的位置。

然后是XOR b,然后返回。

所以我认为我的主要问题是理解b并在Python中复制它。这就是我到目前为止得到的:https://repl.it/repls/CluelessUnsungDisc,但它是fubar,并返回以下错误:

代码语言:javascript
运行
复制
File "main.py", line 8, in <module>
    newstring += chr(ord(dec[letter]) ^ ord(letter % len(key)))
TypeError: ord() expected string of length 1, but int found

我不知道是我的括号还是嵌套,但是ord看不到正确的字符位置。

原始的JS在这里:https://pastebin.com/yMz6aP7V (请记住,它的JS来自被攻破的WordPress站点,所以可能是恶意的)

任何帮助都将不胜感激!

代码语言:javascript
运行
复制
based ="<base64>"
dec = base64.b64decode(based)
print(dec)
key = 'eooquewZmf'
newstring = ''
for letter in range(len(dec)):
    newstring += chr(ord(dec[letter]) ^ ord(letter % len(key)))
    print(newstring)

File "main.py", line 8, in <module>
    newstring += chr(ord(dec[letter]) ^ ord(letter % len(key)))
TypeError: ord() expected string of length 1, but int found
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-13 04:00:39

你应该是带有key元素的XORing。letter % len(key)是该元素的索引(它只是使用wraparound对键进行循环)。

b64decode()返回一个bytes对象而不是字符串,因此您可以只访问整数形式的元素,而不需要调用ord()

代码语言:javascript
运行
复制
import base64

def b64_xor(b64,key):
  dec = base64.b64decode(b64)
  newstring = ''
  for i, letter in enumerate(dec):
    newstring += chr(letter ^ ord(key[i % len(key)]))
  print(newstring)

DEMO

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57467436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档