python 创建Web Server
来源:互联网 发布:q版卡通人物制作软件 编辑:程序博客网 时间:2024/06/06 03:09
1. Web 服务应用工作机制
- 监听80或者是443端口
- 80为普通的http协议,443为https。
- 等待客户端请求
- GET、POST、HEAD… …
- 处理请求
- 保存文件
- 执行CGI脚本
2. 创建一个简单的Web服务
- 使用SimpleHTTPServer类
实现do_GET()方法
可以当做刺透客户端的服务端渗透代码
- 可以做渗透测试的客户端代码
从终端进入python编辑模式,输入以下代码:
>>> >>> import SocketServer>>> import SimpleHTTPServer>>> >>> >>> httpServer = SocketServer.TCPServer(("",8888),SimpleHTTPServer.SimpleHTTPRequestHandler)>>> >>> >>> httpServer.serve_forever()
需要导入SocketServer和SimpleHTTPServer模块,创建TCPServer的一个实例,("",8888)
表示绑定本机IP和8888端口。server_forever()表示持续监听。
打开浏览器,输入本机IP地址和端口号,查看结果:
浏览器列出了当前目录下的文件,再来空一下服务端的处理情况。
左侧的ip和我浏览器IP不一致是因为我是用了代理,这里不多做解释。至于出现了404代码,我们来看一下浏览器地址左侧的小标志,点击查看,原因是身份未验证。
如果只是利用web服务列出文件列表,这就可以了。如果你想更进一步,提供不同的输出服务,例如你想不同的用户访问输出不同的结果。作为一个安全测试人员,你想查看由服务器发送的不同的参数,那么请看一下代码:
#!/usr/bin/env python# _*_ coding=utf-8 _*_import SocketServerimport SimpleHTTPServer#创建HTTPserver处理类,继承SimpleHTTPServerclass HttpRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): if self.path == '/root': self.wfile.write('This page is only for root') self.wfile.write(self.headers) else: SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)httpServer = SocketServer.TCPServer(("",8888),HttpRequestHandler)httpServer.serve_forever()
自己写一个HTTP的处理类,并继承SimpleHTTPServer,重写do_GET()方法。运行此脚本,用浏览器访问。
如果只输入和上面一样的地址(10.128.175.36:8888
)进行访问,得到的结果依然和之前一样,但是我们10.128.175.36:8888/root
访问root目录,再来看一下结果:
从结果上看,已经无法访问,而且后面已经dump出了http头部的详细信息。包括主机的IP和端口,user-agent,Accept等信息。
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36
这个user-agent描述的是本机google浏览器的相关信息。对做网页爬虫,伪造http头是很有用的。
- python 创建Web Server
- python搭建web server
- python web http server
- PYTHON 创建WEB服务器
- Python --- Bottle: 轻量级Web Server
- python 小型web版Server
- docker之web server(python)
- python使用web.py 创建web服务
- 使用 ATL Server 创建 XML Web services
- SS之创建Smooth Streaming web server
- python创建http/https server和client
- Making a simple web server in Python
- Python:FriendFeed的Tornado Web Server
- Python:FriendFeed的Tornado Web Server
- 小测几种python web server的性能
- 继续小测python web server
- Python Web Server Gateway Interface v1.0
- wsgi (Python Web Server Gateway Interface) ******************
- 第3期——WLAN标准协议
- 划分树
- 剑指offer 面试题47—不用加减乘除做加法
- osx命令行操作整理
- 第6期——WLAN常用概念
- python 创建Web Server
- 第7期——AP上线过程
- 第九周项目一 复数类的运算符重载
- 转 Android Looper和Handler
- java Visual Application
- jQuery EasyUI_Combo与Datagrid.2
- 第8期——STA接入过程
- 谁也别想说服谁
- Multisim、proteus和protel的区别