sekureco 0.0.4 → 0.0.5
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/lib/sekureco/web_crawler.rb +22 -9
- metadata +2 -16
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 27cb92f9e36843229fcb3f9f80afb45af8849330
|
|
4
|
+
data.tar.gz: a004e79563b2fdcaab2b2245a695d50f6fe59ea4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2792fd89554ca20c9fefbfb878e9f6c74291d61e69ff6c3a6b9603948245590bfab7cce710ec87cfe8252215f23b7237dff68f768c5b90f26c634b46b96562f1
|
|
7
|
+
data.tar.gz: 9a963fb006ebbaf876341b34188b357cf679827d5e0b026ffafb026b4f77fdd46e15bdbb94b340881f9ccbc4c157dfb0179cdd08b90ddd67ff20f4b483a91a6d
|
data/lib/sekureco/web_crawler.rb
CHANGED
|
@@ -2,17 +2,21 @@ require_relative 'html_page'
|
|
|
2
2
|
require_relative 'http_client'
|
|
3
3
|
|
|
4
4
|
require 'logger'
|
|
5
|
-
require 'launchy'
|
|
6
5
|
|
|
7
6
|
module Sekureco
|
|
8
7
|
|
|
9
8
|
def self.logger
|
|
10
|
-
|
|
9
|
+
create_log_directory
|
|
10
|
+
@logger ||= Logger.new(File.new("log/sekureco.log", "w"))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.create_log_directory
|
|
14
|
+
Dir.mkdir("log") unless File.exists?("log")
|
|
11
15
|
end
|
|
12
16
|
|
|
13
17
|
class WebCrawler
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
MAX_DIST_FROM_SOURCE_PAGE = 4
|
|
16
20
|
|
|
17
21
|
def initialize url, username = nil, password = nil, app_token = 'foo'
|
|
18
22
|
@uri = URI url
|
|
@@ -56,9 +60,9 @@ module Sekureco
|
|
|
56
60
|
end
|
|
57
61
|
end
|
|
58
62
|
end
|
|
59
|
-
|
|
60
|
-
if @vulnerabilities
|
|
63
|
+
if detect_embedded_scripts_in(@current_page)
|
|
61
64
|
Sekureco.logger.info "Successfully applied XSS attack"
|
|
65
|
+
@vulnerabilities_found = true
|
|
62
66
|
confirm_attack
|
|
63
67
|
end
|
|
64
68
|
end
|
|
@@ -92,7 +96,8 @@ module Sekureco
|
|
|
92
96
|
|
|
93
97
|
def test_application
|
|
94
98
|
2.times { self.crawl }
|
|
95
|
-
|
|
99
|
+
clear_temporary_files
|
|
100
|
+
@vulnerabilities_found
|
|
96
101
|
end
|
|
97
102
|
|
|
98
103
|
private
|
|
@@ -114,7 +119,7 @@ module Sekureco
|
|
|
114
119
|
end
|
|
115
120
|
|
|
116
121
|
def too_deep? page
|
|
117
|
-
@distance[page] >=
|
|
122
|
+
@distance[page] >= MAX_DIST_FROM_SOURCE_PAGE
|
|
118
123
|
end
|
|
119
124
|
|
|
120
125
|
def possible_login_fields
|
|
@@ -137,8 +142,8 @@ module Sekureco
|
|
|
137
142
|
end
|
|
138
143
|
|
|
139
144
|
def confirm_attack
|
|
140
|
-
File.open(
|
|
141
|
-
|
|
145
|
+
File.open(current_page_file_path, "w+") { |f| f.write(@current_page) }
|
|
146
|
+
system "xdg-open #{current_page_file_path}"
|
|
142
147
|
end
|
|
143
148
|
|
|
144
149
|
def detect_embedded_scripts_in html_page
|
|
@@ -153,6 +158,14 @@ module Sekureco
|
|
|
153
158
|
uri.path
|
|
154
159
|
end
|
|
155
160
|
end
|
|
161
|
+
|
|
162
|
+
def current_page_file_path
|
|
163
|
+
"#{Dir.pwd}/log/current_page_#{@app_token}.html"
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
def clear_temporary_files
|
|
167
|
+
system "fuser -k -TERM #{current_page_file_path}"
|
|
168
|
+
end
|
|
156
169
|
end
|
|
157
170
|
|
|
158
171
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sekureco
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Pedro de Lyra
|
|
@@ -9,21 +9,7 @@ autorequire:
|
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
11
|
date: 2017-10-17 00:00:00.000000000 Z
|
|
12
|
-
dependencies:
|
|
13
|
-
- !ruby/object:Gem::Dependency
|
|
14
|
-
name: launchy
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - "~>"
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0'
|
|
20
|
-
type: :runtime
|
|
21
|
-
prerelease: false
|
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
-
requirements:
|
|
24
|
-
- - "~>"
|
|
25
|
-
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0'
|
|
12
|
+
dependencies: []
|
|
27
13
|
description: A tool to perform penetration tests on web applications
|
|
28
14
|
email: pedrodelyra@gmail.com
|
|
29
15
|
executables: []
|