dradis-burp 3.19.0 → 3.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/burp/html/issue.rb +17 -1
- data/lib/dradis/plugins/burp/gem_version.rb +1 -1
- data/spec/burp_upload_spec.rb +7 -7
- data/spec/fixtures/files/burp.html +32 -0
- data/templates/html_evidence.fields +4 -3
- metadata +6 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8f71b741a300650b68fb4e479139f8ba6331489e360d0b6d8afb6efe83c85652
|
|
4
|
+
data.tar.gz: 86d549704e91b887b00ead3c0d10939caf7eaad1a6aac22e15113702662d5bed
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 45b5a6a5a25eff76f2cc295cad4c303214f2982900ad56630640e3ae21c84d04406f72f10c35712c6080d70124d40fa462ce3af0f1a3a84e3050fffa490198a4
|
|
7
|
+
data.tar.gz: 815997dbb84a517d2256f9e37d537685034972dc72802cfea0c6dc5342b6c5859030aebbe8a409e0f7d494cf3500fcc114d3fc92841bab940e1a289af806dffb
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## Dradis Framework 3.20 (December, 2020) ##
|
|
2
|
+
|
|
3
|
+
* Convert highlighted HTML code to Dradis highlight format
|
|
4
|
+
* Make `issue.detail` available at the Evidence level for HTML uploads.
|
|
5
|
+
* Make `issue.location` available at the HTML Evidence level.
|
|
6
|
+
|
|
1
7
|
## Dradis Framework 3.19 (September, 2020) ##
|
|
2
8
|
|
|
3
9
|
* No changes.
|
data/lib/burp/html/issue.rb
CHANGED
|
@@ -19,7 +19,7 @@ module Burp
|
|
|
19
19
|
:name, :type,
|
|
20
20
|
|
|
21
21
|
# tags with contents retrieved following the span header
|
|
22
|
-
:background, :detail,
|
|
22
|
+
:background, :detail, :location,
|
|
23
23
|
:references, :remediation_background, :remediation_detail,
|
|
24
24
|
:request, :request_1, :request_2, :request_3,
|
|
25
25
|
:response, :response_1, :response_2, :response_3,
|
|
@@ -84,6 +84,19 @@ module Burp
|
|
|
84
84
|
method_names = translations_table.fetch(method, method.to_s)
|
|
85
85
|
method_names = [method_names].flatten
|
|
86
86
|
|
|
87
|
+
# Process the Location field
|
|
88
|
+
if method.to_s == 'location'
|
|
89
|
+
location = @html.at_xpath('/html/body/span[contains(@class, "BODH1")]')&.text
|
|
90
|
+
|
|
91
|
+
if location
|
|
92
|
+
# Remove the header number from the text.
|
|
93
|
+
# E.g. <span class="BODH1" id="1.1">1.1. /sample/text/</span>
|
|
94
|
+
return location.split(/[[:space:]]/).drop(1).join(' ')
|
|
95
|
+
else
|
|
96
|
+
return 'n/a'
|
|
97
|
+
end
|
|
98
|
+
end
|
|
99
|
+
|
|
87
100
|
h2 = nil
|
|
88
101
|
method_names.each do |method_name|
|
|
89
102
|
h2 = @html.xpath("//h2[text()='#{method_name}']").first
|
|
@@ -113,6 +126,9 @@ module Burp
|
|
|
113
126
|
def cleanup_request_response_html(source)
|
|
114
127
|
result = source.dup
|
|
115
128
|
|
|
129
|
+
# Highlight code
|
|
130
|
+
result.gsub!(/<span class="HIGHLIGHT">(.+?)<\/span>/, '$${{\1}}$$')
|
|
131
|
+
|
|
116
132
|
result.gsub!(/<b>(.*?)<\/b>/, '\1')
|
|
117
133
|
result.gsub!(/<br>|<\/br>/){"\n"}
|
|
118
134
|
result.gsub!(/<span.*?>/, '')
|
data/spec/burp_upload_spec.rb
CHANGED
|
@@ -114,11 +114,10 @@ describe 'Burp upload plugin' do
|
|
|
114
114
|
|
|
115
115
|
it 'returns the highest <severity> at the Issue level' do
|
|
116
116
|
|
|
117
|
-
# create_issue should be called once for each issue in the xml
|
|
118
117
|
expect(@content_service).to receive(:create_issue) do |args|
|
|
119
118
|
expect(args[:id]).to eq(8781630)
|
|
120
119
|
expect(args[:text]).to include("#[Title]#\nIssue 1")
|
|
121
|
-
expect(args[:text]).to include("#[Severity]#\
|
|
120
|
+
expect(args[:text]).to include("#[Severity]#\nInformation")
|
|
122
121
|
OpenStruct.new(args)
|
|
123
122
|
end
|
|
124
123
|
|
|
@@ -129,23 +128,23 @@ describe 'Burp upload plugin' do
|
|
|
129
128
|
end.once
|
|
130
129
|
expect(@content_service).to receive(:create_evidence) do |args|
|
|
131
130
|
expect(args[:content]).to include("#[Severity]#\nHigh")
|
|
132
|
-
expect(args[:issue].text).to include("#[Title]#\nIssue
|
|
131
|
+
expect(args[:issue].text).to include("#[Title]#\nIssue 2")
|
|
133
132
|
expect(args[:node].label).to eq('10.0.0.1')
|
|
134
133
|
OpenStruct.new(args)
|
|
135
134
|
end.once
|
|
136
135
|
expect(@content_service).to receive(:create_evidence) do |args|
|
|
137
136
|
expect(args[:content]).to include("#[Severity]#\nMedium")
|
|
138
|
-
expect(args[:issue].text).to include("#[Title]#\nIssue
|
|
137
|
+
expect(args[:issue].text).to include("#[Title]#\nIssue 3")
|
|
139
138
|
expect(args[:node].label).to eq('10.0.0.1')
|
|
140
139
|
end.once
|
|
141
140
|
expect(@content_service).to receive(:create_evidence) do |args|
|
|
142
|
-
expect(args[:content]).to include("#[Severity]#\
|
|
143
|
-
expect(args[:issue].text).to include("#[Title]#\nIssue
|
|
141
|
+
expect(args[:content]).to include("#[Severity]#\nHigh")
|
|
142
|
+
expect(args[:issue].text).to include("#[Title]#\nIssue 4")
|
|
144
143
|
expect(args[:node].label).to eq('10.0.0.1')
|
|
145
144
|
end.once
|
|
146
145
|
expect(@content_service).to receive(:create_evidence) do |args|
|
|
147
146
|
expect(args[:content]).to include("#[Severity]#\nLow")
|
|
148
|
-
expect(args[:issue].text).to include("#[Title]#\nIssue
|
|
147
|
+
expect(args[:issue].text).to include("#[Title]#\nIssue 5")
|
|
149
148
|
expect(args[:node].label).to eq('10.0.0.1')
|
|
150
149
|
end.once
|
|
151
150
|
|
|
@@ -208,6 +207,7 @@ describe 'Burp upload plugin' do
|
|
|
208
207
|
end.once
|
|
209
208
|
expect(@content_service).to receive(:create_evidence) do |args|
|
|
210
209
|
expect(args[:content]).to include("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
|
|
210
|
+
expect(args[:content]).to include("#[Location]#\nhttp://1.1.1.1/dradis/sessions")
|
|
211
211
|
expect(args[:issue].text).to include("#[Title]#\nStrict transport security not enforced")
|
|
212
212
|
expect(args[:node].label).to eq("github.com/dradis/dradis-burp")
|
|
213
213
|
end.once
|
|
@@ -179,8 +179,13 @@ div.scan_issue_medium_tentative_rpt{width: 32px; height: 32px; background-image:
|
|
|
179
179
|
<div class="rule"></div>
|
|
180
180
|
<h1>Contents</h1>
|
|
181
181
|
<p class="TOCH0"><a href="#1">1. Strict transport security not enforced</a></p>
|
|
182
|
+
<p class="TOCH1"><a href="#1.1">1.1. http://1.1.1.1/dradis/sessions</a></p>
|
|
182
183
|
<br><div class="rule"></div>
|
|
183
184
|
<span class="BODH0" id="1">1. <a href="https://portswigger.net/knowledgebase/issues/details/01000300_stricttransportsecuritynotenforced">Strict transport security not enforced</a></span>
|
|
185
|
+
<br><span class="TEXT">There are 1 instances of this issue:
|
|
186
|
+
<ul>
|
|
187
|
+
<li><a href="#1.1">/dradis/sessions</a></li>
|
|
188
|
+
</ul></span>
|
|
184
189
|
<br>
|
|
185
190
|
<h2>Summary</h2>
|
|
186
191
|
<table cellpadding="0" cellspacing="0" class="summary_table">
|
|
@@ -218,6 +223,33 @@ To exploit this vulnerability, an attacker must be suitably positioned to interc
|
|
|
218
223
|
<h2>Vulnerability classifications</h2><span class="TEXT"><ul>
|
|
219
224
|
<li><a href="https://cwe.mitre.org/data/definitions/523.html">CWE-523: Unprotected Transport of Credentials</a></li>
|
|
220
225
|
</ul></span>
|
|
226
|
+
<br><div class="rule"></div>
|
|
227
|
+
<span class="BODH1" id="2.1">1.1. http://1.1.1.1/dradis/sessions</span>
|
|
228
|
+
<br><a class="PREVNEXT" href="#2.2">Next</a>
|
|
229
|
+
<br>
|
|
230
|
+
<h2>Summary</h2>
|
|
231
|
+
<table cellpadding="0" cellspacing="0" class="summary_table">
|
|
232
|
+
<tr>
|
|
233
|
+
<td rowspan="4" class="icon" valign="top" align="center"><div class='scan_issue_high_certain_rpt'></div></td>
|
|
234
|
+
<td>Severity: </td>
|
|
235
|
+
<td><b>High</b></td>
|
|
236
|
+
</tr>
|
|
237
|
+
<tr>
|
|
238
|
+
<td>Confidence: </td>
|
|
239
|
+
<td><b>Certain</b></td>
|
|
240
|
+
</tr>
|
|
241
|
+
<tr>
|
|
242
|
+
<td>Host: </td>
|
|
243
|
+
<td><b>http://1.1.1.1</b></td>
|
|
244
|
+
</tr>
|
|
245
|
+
<tr>
|
|
246
|
+
<td>Path: </td>
|
|
247
|
+
<td><b>/dradis/sessions</b></td>
|
|
248
|
+
</tr>
|
|
249
|
+
</table>
|
|
250
|
+
<h2>Issue detail</h2>
|
|
251
|
+
<span class="TEXT">The page contains a form with the following action URL, which is submitted over clear-text HTTP:<ul><li>http://1.1.1.1/dradis/sessions</li></ul>The form contains the following password field:<ul><li>session[password]</li></ul></span>
|
|
252
|
+
|
|
221
253
|
<h2>Request</h2>
|
|
222
254
|
<div class="rr_div"><span>GET / HTTP/1.1<br>Host: github.com/dradis/dradis-burp<br>User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:66.0) Gecko/20100101 Firefox/66.0<br>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8<br>Accept-Language: en,es-ES;q=0.8,es;q=0.5,en-US;q=0.3<br>Accept-Encoding: gzip, deflate<br>Connection: close<br>Cookie: hpage=1; AMCV_2387401053DB208C0A490D4C%40AdobeOrg=-1891778711%7CMCIDTS%7C17970%7CMCMID%7C21612935572021633722025223033275851039%7CMCAAMLH-1553169173%7C6%7CMCAAMB-1553169173%7CRKhpRz8krg2tLO6pguXWp5olkAcUniQYPHaMWWgdJ3xzPWQmdj0y%7CMCOPTOUT-1552571573s%7CNONE%7CMCAID%7CNONE%7CvVersion%7C2.4.0; uid=W9g/8Fux09NcLDHUBLt6Ag==#b4a7fa78e6c4983b02b41f0c993c2043; uid_ns=W9g/8Fux09NcLDHUBLt6Ag==; dtm_dds=3/14/2019%7C; s_lv=1538401711844; asaleatorio=v6|NO; _cb_ls=1; _cb=CHsEZNVjLgK9Eh3g; _chartbeat2=.1538380775140.1552564528405.0000000000000001.DULUU_5XcVyr-M7oTDU5YBMxsZ0.2; __gads=ID=06fd97433187c959:T=1538380762:S=ALNI_MZNHKQ5IoHIQX9fc91pDzlf7PDN4g; pbsconsent=BOU8kdHOU8kdHABABAENBq-AAAAht7_______9______9uz_Gv_v_f__33e8__9v_l_7_-___u_-33d4-_1vX99yfm1-7ftr3tp_86ues2_Xur_959_-njE; _v__chartbeat3=ChrB4_B73EobCceMDU; kppid=W9g/8Fux09NcLDHUBLt6Ag==; assegmento=v14|#feminismo; asnumdisplays=v14|1; aslastdisplay=v14|1552564374379; _fbp=fb.1.1552564376436.938848531; hst=1552520446_153124; cto_lwid=a6243aac-07e7-4c94-b258-b67ada2611d6; cto_idcpy=fec01c29-01e9-4fa7-b32d-b9ca0b82f535<br>Upgrade-Insecure-Requests: 1<br><br></span></div>
|
|
223
255
|
<h2>Response</h2>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
+
issue.confidence
|
|
2
|
+
issue.detail
|
|
1
3
|
issue.host
|
|
2
|
-
issue.path
|
|
3
4
|
issue.location
|
|
4
|
-
issue.
|
|
5
|
-
issue.confidence
|
|
5
|
+
issue.path
|
|
6
6
|
issue.request
|
|
7
7
|
issue.request_1
|
|
8
8
|
issue.request_2
|
|
@@ -11,3 +11,4 @@ issue.response
|
|
|
11
11
|
issue.response_1
|
|
12
12
|
issue.response_2
|
|
13
13
|
issue.response_3
|
|
14
|
+
issue.severity
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dradis-burp
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.20.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Daniel Martin
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-01-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: dradis-plugins
|
|
@@ -145,7 +145,7 @@ homepage: http://dradisframework.org
|
|
|
145
145
|
licenses:
|
|
146
146
|
- GPL-2
|
|
147
147
|
metadata: {}
|
|
148
|
-
post_install_message:
|
|
148
|
+
post_install_message:
|
|
149
149
|
rdoc_options: []
|
|
150
150
|
require_paths:
|
|
151
151
|
- lib
|
|
@@ -160,8 +160,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
160
160
|
- !ruby/object:Gem::Version
|
|
161
161
|
version: '0'
|
|
162
162
|
requirements: []
|
|
163
|
-
rubygems_version: 3.
|
|
164
|
-
signing_key:
|
|
163
|
+
rubygems_version: 3.2.4
|
|
164
|
+
signing_key:
|
|
165
165
|
specification_version: 4
|
|
166
166
|
summary: Burp Scanner upload plugin for the Dradis Framework.
|
|
167
167
|
test_files:
|