@@ -141,9 +141,9 @@ def parse_params(request_body)
141
141
142
142
def report_web_page ( &block )
143
143
return unless ( in_issue && has_text )
144
- return unless @state [ :web_site ]
145
- return unless @state [ :response_headers ]
146
- return unless @state [ :uri ]
144
+ return unless @state [ :web_site ] . present?
145
+ return unless @state [ :response_headers ] . present?
146
+ return unless @state [ :uri ] . present?
147
147
web_page_info = { }
148
148
web_page_info [ :web_site ] = @state [ :web_site ]
149
149
web_page_info [ :path ] = @state [ :uri ] . path
@@ -187,31 +187,21 @@ def report_service_info
187
187
188
188
def record_request_and_response
189
189
return unless ( in_issue && has_text )
190
- return unless @state [ :web_site ]
190
+ return unless @state [ :web_site ] . present?
191
191
really_original_traffic = unindent_and_crlf ( @text )
192
- split_traffic = really_original_traffic . split ( /\r \n \r \n / )
193
- request_headers_text = split_traffic . first
194
- content_length = 0
195
- if request_headers_text =~ /\n content-length:\s +([0-9]+)/mni
196
- content_length = $1. to_i
197
- end
198
- if ( content_length > 0 ) and ( split_traffic [ 1 ] . to_s . size >= content_length )
199
- request_body_text = split_traffic [ 1 ] . to_s [ 0 , content_length ]
200
- else
201
- request_body_text = nil
202
- end
203
- response_headers_text = split_traffic [ 1 ] . to_s [ content_length , split_traffic [ 1 ] . to_s . size ] . lstrip
204
- request = request_headers_text
205
- return unless ( request && response_headers_text )
206
- response_body_text = split_traffic [ 2 ]
192
+ request_headers , request_body , response_headers , response_body = really_original_traffic . split ( /\r \n \r \n / )
193
+ return unless ( request_headers && response_headers )
207
194
req_header = Rex ::Proto ::Http ::Packet ::Header . new
208
195
res_header = Rex ::Proto ::Http ::Packet ::Header . new
209
- req_header . from_s request_headers_text . dup
210
- res_header . from_s response_headers_text . dup
196
+ req_header . from_s request_headers . lstrip
197
+ res_header . from_s response_headers . lstrip
198
+ if response_body . blank?
199
+ response_body = ''
200
+ end
211
201
@state [ :request_headers ] = req_header
212
- @state [ :request_body ] = request_body_text
202
+ @state [ :request_body ] = request_body . lstrip
213
203
@state [ :response_headers ] = res_header
214
- @state [ :response_body ] = response_body_text
204
+ @state [ :response_body ] = response_body . lstrip
215
205
end
216
206
217
207
# Appscan tab-indents which makes parsing a little difficult. They
0 commit comments