MCPcopy
hub / github.com/0x727/ShuiZe_0x727 / parse

Method parse

Plugins/Vul/CMS/Tomcat_AJP_LFI.py:132–153  ·  view source on GitHub ↗
(self, raw_packet)

Source from the content-addressed store, hash-verified

130 header = struct.pack(">bbh", 0x41, 0x42, len(res))
131 return header + res
132 def parse(self, raw_packet):
133 stream = StringIO(raw_packet)
134 self.magic1, self.magic2, data_len = unpack(stream, "bbH")
135 self.prefix_code, self.method = unpack(stream, "bb")
136 self.protocol = unpack_string(stream)
137 self.req_uri = unpack_string(stream)
138 self.remote_addr = unpack_string(stream)
139 self.remote_host = unpack_string(stream)
140 self.server_name = unpack_string(stream)
141 self.server_port = unpack(stream, ">h")
142 self.is_ssl = unpack(stream, "?")
143 self.num_headers, = unpack(stream, ">H")
144 self.request_headers = {}
145 for i in range(self.num_headers):
146 code, = unpack(stream, ">H")
147 if code > 0xA000:
148 h_name = AjpForwardRequest.COMMON_HEADERS[code - 0xA001]
149 else:
150 h_name = unpack(stream, "%ds" % code)
151 stream.read(1) # \0
152 h_value = unpack_string(stream)
153 self.request_headers[h_name] = h_value
154 def send_and_receive(self, socket, stream, save_cookies=False):
155 res = []
156 i = socket.sendall(self.serialize())

Callers

nothing calls this directly

Calls 2

unpackFunction · 0.85
unpack_stringFunction · 0.85

Tested by

no test coverage detected