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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sekureco/web_crawler.rb +22 -9
  3. metadata +2 -16
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 49e51c0ad090d65782fec8ffce7734f9af7d8208
4
- data.tar.gz: ce0d217464dd29bd936dd1bf4d2c44489605820b
3
+ metadata.gz: 27cb92f9e36843229fcb3f9f80afb45af8849330
4
+ data.tar.gz: a004e79563b2fdcaab2b2245a695d50f6fe59ea4
5
5
  SHA512:
6
- metadata.gz: 4bb51a8f4674f6a39497b8e815011a4b2df0abc76bf9713d79703231dc153d1ab326ab871dcc6d40f6f4ca2cc35e02d7ccee0bf7bf342d22d0f164b437de5366
7
- data.tar.gz: 4d839eb87ccbc0d2ebbf2aa0ff95f2386f830a4e83f9ffea1b8e01c591eda446c98099dde1397c3ca7604c37aa938bc4dd83b1c4738f6be94607759c0935c84b
6
+ metadata.gz: 2792fd89554ca20c9fefbfb878e9f6c74291d61e69ff6c3a6b9603948245590bfab7cce710ec87cfe8252215f23b7237dff68f768c5b90f26c634b46b96562f1
7
+ data.tar.gz: 9a963fb006ebbaf876341b34188b357cf679827d5e0b026ffafb026b4f77fdd46e15bdbb94b340881f9ccbc4c157dfb0179cdd08b90ddd67ff20f4b483a91a6d
@@ -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
- @logger ||= Logger.new(File.new("sekureco.log", "w"))
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
- MAX_DIST = 4
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
- @vulnerabilities = true if detect_embedded_scripts_in(@current_page)
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
- @vulnerabilities
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] >= MAX_DIST
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("current_page.html", "w+") { |f| f.write(@current_page) }
141
- Launchy.open("#{Dir.pwd}/current_page.html")
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
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: []