api

  1. # coding:utf-8
  2. """
  3. 雷池API功能大全脚本,分多个模块。
  4. """
  5. import os
  6. print(os.getcwd())
  7. print('WAFapi')

syslog server

写接口自动化测试的时候需要自己搭一个syslog服务器,找到了一个udp协议的还挺好用
https://gist.github.com/marcelom/4218010
因为雷池还需要测tcp协议的,所以参考下面的文档完善了一下tcp的部分。
https://docs.python.org/3.4/library/socketserver.html

  1. #!/usr/bin/env python3
  2. LOG_FILE = 'syslog.log'
  3. HOST, PORT = "0.0.0.0", 514
  4. MODE = 'udp'
  5. import sys
  6. import getopt
  7. import logging
  8. import socketserver
  9. class SyslogUDPHandler(socketserver.BaseRequestHandler):
  10. def handle(self):
  11. self.data = bytes.decode(self.request[0].strip())
  12. socket = self.request[1]
  13. print( "%s : " % self.client_address[0], str(self.data))
  14. logging.info(str(self.data))
  15. class SyslogTCPHandler(socketserver.BaseRequestHandler):
  16. def handle(self):
  17. # self.request is the TCP socket connected to the client
  18. self.data = self.request.recv(1024).strip()
  19. print("{} wrote:".format(self.client_address[0]))
  20. print(self.data)
  21. # just send back the same data, but upper-cased
  22. self.request.sendall(self.data.upper())
  23. logging.info(str(self.data))
  24. def show_help():
  25. """
  26. Help message to display if bad arguments or help requested.
  27. """
  28. print('-------------------------------------------------------------------------------')
  29. print('')
  30. print(' -l <logfile> -- Specify the log file to write to. Default is pysyslog.log')
  31. print(' -p <port> -- Specify the port to listen on. Default is 514')
  32. print(' -i <host> -- Specify the IP address to listen on. Default is 0.0.0.0')
  33. print(' -m <mode> -- Specify the mode tcp or udp. Default is udp')
  34. print('')
  35. print('Example:')
  36. print(' python3 server_server.py -l syslog.log -p 514 -i 192.168.12.1 -m udp ')
  37. print('-------------------------------------------------------------------------------')
  38. sys.exit(2)
  39. def main(argv):
  40. logfile = LOG_FILE
  41. host = HOST
  42. port = PORT
  43. mode = MODE
  44. try:
  45. opts, args = getopt.getopt(argv, "hl:p:i:m:", ["logfile=", "port=", "host=","mode="])
  46. except getopt.GetoptError:
  47. show_help()
  48. for opt, arg in opts:
  49. if opt == '-h':
  50. show_help()
  51. sys.exit()
  52. elif opt in ("-l", "--logfile"):
  53. logfile = arg
  54. elif opt in ("-p", "--port"):
  55. port = int(arg)
  56. elif opt in ("-i", "--host"):
  57. host = arg
  58. elif opt in ("-m", "--mode"):
  59. if arg!='tcp':
  60. mode = 'udp'
  61. else:
  62. mode = arg
  63. print(' Writing to: {}'.format(logfile))
  64. print(' Listening on: {}'.format(port))
  65. print(' Bound to: {}'.format(host))
  66. print(' Bound to: {}'.format(mode))
  67. print('')
  68. print('Starting Server, press Ctrl+C to shutdown.')
  69. print('')
  70. logging.basicConfig(level=logging.INFO, format='%(message)s', datefmt='', filename=logfile, filemode='a')
  71. if mode=='tcp':
  72. try:
  73. #server = socketserver.UDPServer((HOST,PORT), SyslogUDPHandler)
  74. server = socketserver.TCPServer((host, port), SyslogTCPHandler)
  75. server.serve_forever(poll_interval=0.5)
  76. except (IOError, SystemExit):
  77. raise
  78. except KeyboardInterrupt:
  79. print ("Crtl+C Pressed. Shutting down.")
  80. else:
  81. try:
  82. server = socketserver.UDPServer((host,port), SyslogUDPHandler)
  83. #server = socketserver.TCPServer((HOST, PORT), SyslogTCPHandler)
  84. server.serve_forever(poll_interval=0.5)
  85. except (IOError, SystemExit):
  86. raise
  87. except KeyboardInterrupt:
  88. print ("Crtl+C Pressed. Shutting down.")
  89. if __name__ == "__main__":
  90. main(sys.argv[1:])

rtcp-master

把虚拟机的443转发到本机1443以便让局域网他人访问
./rtcp.py l:1443 c:10.211.55.19:443
https://github.com/knownsec/rtcp