想要多一点,要用来训练模型的,而不是示例,其他的我基本都在github找到了一点,就是webshell攻击类的URL还没找到,所以后面最好要webshell攻击的url训练集,其他的也还想求
我也想知道在一些日志数据中显示在request,referer的URL上,是长得像一句话木马这样的,还是/xx/xx/upload/1.php 这样的
想做URL检测,求以下类型的URL有效攻击负载(payloads),Webshell攻击、LFI(本地文件包含)、XML注入、SSI注入、XPATH注入,有其中一种都可以,最好多一点,下面是我之前收集的数据集样例,一行一条数据,文件和链接都可以,有用就打赏。(不是单纯的恶意URL,是分好类型的恶意URL),谢谢!
以下是一些针对不同类型的恶意URL的示例负载(payloads):
Webshell攻击:
LFI(本地文件包含):
XML注入:
SSI注入:
XPATH注入:
请注意,这些负载仅用于演示目的,并且可能会对目标系统产生恶意影响。在实际环境中,使用这些负载可能违反法律规定,损害他人的系统和数据安全。建议仅在合法和受授权的环境中进行安全测试和演示。
以下答案由GPT-3.5大模型与博主波罗歌共同编写:
要获取恶意URL的有效攻击负载数据集,需要进行以下步骤:
找到数据源:可以搜索各种公开的数据集网站,如kaggle、UCI Machine Learning Repository等。另外可以从已知的恶意URL中提取攻击负载,也可以通过爬虫在恶意网站上按类型收集。
整理数据:将获取到的数据整理成一份表格,包括URL、攻击类型、攻击负载等信息。
去重:对于相同的恶意URL,可能有多个不同的攻击负载,需要进行去重操作,只保留一种攻击负载。
分类保存:将整理的恶意URL按照攻击类型进行分类保存,以便后续训练模型时使用。
下面是一个Python代码示例,可以爬取恶意URL,并提取攻击负载,将其分类保存为文件:
import urllib.request
import re
import os
# 定义恶意URL的数据源
data_source = ['http://example.com/malwareurls.txt']
# 定义恶意URL保存路径
save_path = './malware_urls/'
# 创建保存路径
if not os.path.exists(save_path):
os.makedirs(save_path)
# 遍历数据源
for ds in data_source:
# 下载文件
urllib.request.urlretrieve(ds, save_path + 'urls.txt')
# 打开文件
with open(save_path + 'urls.txt', 'r') as f:
# 遍历每一行
for line in f:
# 提取URL
url = line.strip()
# 访问URL,获取源代码
try:
response = urllib.request.urlopen(url, timeout=5)
html = response.read().decode('utf-8')
except:
continue
# 定义正则表达式,提取攻击负载
payload_pattern = re.compile(r'(?i)(/etc/passwd|<script>alert\(1\)</script>|x:">:<script>alert\(0\)</script>;|...)')
# 匹配正则表达式
payloads = payload_pattern.findall(html)
# 如果有匹配结果,保存到文件中
if payloads:
# 定义保存路径,按攻击类型分类保存
save_url = save_path + 'webshell/' + re.sub(r'\W+', '_', url) + '.txt'
# 创建保存路径
if not os.path.exists(os.path.dirname(save_url)):
os.makedirs(os.path.dirname(save_url))
# 保存攻击负载
with open(save_url, 'w') as f2:
f2.write('\n'.join(payloads))
通过以上代码可以爬取恶意URL,并提取攻击负载,将其保存为按类型分类的文件。其中,正则表达式需要针对具体的攻击类型进行修改。
如果我的回答解决了您的问题,请采纳!
python
import pandas as pd
import re
url_dataset = pd.read_csv('webshell_dataset.csv') # 加载数据集文件
payloads = []
for url in url_dataset['URL']: # 遍历数据集中的每个URL
match = re.search(r'((cmd|eval|papa|default)\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+)', url) # 使用正则表达式匹配可能的Webshell攻击负载
if match:
payloads.append(match.group(1))
payloads = list(set(payloads)) # 去除重复项
with open('webshell_payloads.txt', 'w') as f: # 将提取的负载写入文本文件
for payload in payloads:
f.write(payload + '
')
python
import re
log_data = "GET /cmd.aspx HTTP/1.1\r
Host: example.com\r
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0\r
Referer: http://example.com/cmd.aspx\r
\r
"
match = re.search(r'((cmd|eval|papa|default)\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+)', log_data) # 使用正则表达式匹配可能的Webshell攻击负载
if match:
print('Webshell attack payload found:', match.group(1))
else:
print('No Webshell attack paylaod found.')