码迷,mamicode.com
首页 > 编程语言 > 详细

python 创建Web Server

时间:2015-05-03 10:42:34      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:python   web-server   simplehttp   web服务   

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 SocketServer
import SimpleHTTPServer

#创建HTTPserver处理类,继承SimpleHTTPServer
class 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   simplehttp   web服务   

原文地址:http://blog.csdn.net/jeanphorn/article/details/45444359

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!