api
# coding:utf-8
"""
雷池API功能大全脚本,分多个模块。
"""
import os
print(os.getcwd())
print('WAFapi')
syslog server
写接口自动化测试的时候需要自己搭一个syslog服务器,找到了一个udp协议的还挺好用
https://gist.github.com/marcelom/4218010
因为雷池还需要测tcp协议的,所以参考下面的文档完善了一下tcp的部分。
https://docs.python.org/3.4/library/socketserver.html
#!/usr/bin/env python3
LOG_FILE = 'syslog.log'
HOST, PORT = "0.0.0.0", 514
MODE = 'udp'
import sys
import getopt
import logging
import socketserver
class SyslogUDPHandler(socketserver.BaseRequestHandler):
def handle(self):
self.data = bytes.decode(self.request[0].strip())
socket = self.request[1]
print( "%s : " % self.client_address[0], str(self.data))
logging.info(str(self.data))
class SyslogTCPHandler(socketserver.BaseRequestHandler):
def handle(self):
# self.request is the TCP socket connected to the client
self.data = self.request.recv(1024).strip()
print("{} wrote:".format(self.client_address[0]))
print(self.data)
# just send back the same data, but upper-cased
self.request.sendall(self.data.upper())
logging.info(str(self.data))
def show_help():
"""
Help message to display if bad arguments or help requested.
"""
print('-------------------------------------------------------------------------------')
print('')
print(' -l <logfile> -- Specify the log file to write to. Default is pysyslog.log')
print(' -p <port> -- Specify the port to listen on. Default is 514')
print(' -i <host> -- Specify the IP address to listen on. Default is 0.0.0.0')
print(' -m <mode> -- Specify the mode tcp or udp. Default is udp')
print('')
print('Example:')
print(' python3 server_server.py -l syslog.log -p 514 -i 192.168.12.1 -m udp ')
print('-------------------------------------------------------------------------------')
sys.exit(2)
def main(argv):
logfile = LOG_FILE
host = HOST
port = PORT
mode = MODE
try:
opts, args = getopt.getopt(argv, "hl:p:i:m:", ["logfile=", "port=", "host=","mode="])
except getopt.GetoptError:
show_help()
for opt, arg in opts:
if opt == '-h':
show_help()
sys.exit()
elif opt in ("-l", "--logfile"):
logfile = arg
elif opt in ("-p", "--port"):
port = int(arg)
elif opt in ("-i", "--host"):
host = arg
elif opt in ("-m", "--mode"):
if arg!='tcp':
mode = 'udp'
else:
mode = arg
print(' Writing to: {}'.format(logfile))
print(' Listening on: {}'.format(port))
print(' Bound to: {}'.format(host))
print(' Bound to: {}'.format(mode))
print('')
print('Starting Server, press Ctrl+C to shutdown.')
print('')
logging.basicConfig(level=logging.INFO, format='%(message)s', datefmt='', filename=logfile, filemode='a')
if mode=='tcp':
try:
#server = socketserver.UDPServer((HOST,PORT), SyslogUDPHandler)
server = socketserver.TCPServer((host, port), SyslogTCPHandler)
server.serve_forever(poll_interval=0.5)
except (IOError, SystemExit):
raise
except KeyboardInterrupt:
print ("Crtl+C Pressed. Shutting down.")
else:
try:
server = socketserver.UDPServer((host,port), SyslogUDPHandler)
#server = socketserver.TCPServer((HOST, PORT), SyslogTCPHandler)
server.serve_forever(poll_interval=0.5)
except (IOError, SystemExit):
raise
except KeyboardInterrupt:
print ("Crtl+C Pressed. Shutting down.")
if __name__ == "__main__":
main(sys.argv[1:])
rtcp-master
把虚拟机的443转发到本机1443以便让局域网他人访问
./rtcp.py l:1443 c:10.211.55.19:443
https://github.com/knownsec/rtcp