Skip to content

Commit e29c847

Browse files
committed
Merge branch 'develop'
2 parents 7c9d3dd + 48a330f commit e29c847

File tree

8 files changed

+54
-24
lines changed

8 files changed

+54
-24
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ language: python
55

66
env:
77
global:
8+
# Prevent Google Chrome driver from freezing
89
- DBUS_SESSION_BUS_ADDRESS=/dev/null
910

1011
python:

acstis/Driver.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# -*- coding: utf-8 -*-
22

33
# MIT License
4-
#
4+
#
55
# Copyright (c) 2017 Tijme Gommers
6-
#
6+
#
77
# Permission is hereby granted, free of charge, to any person obtaining a copy
88
# of this software and associated documentation files (the "Software"), to deal
99
# in the Software without restriction, including without limitation the rights
1010
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1111
# copies of the Software, and to permit persons to whom the Software is
1212
# furnished to do so, subject to the following conditions:
13-
#
13+
#
1414
# The above copyright notice and this permission notice shall be included in all
1515
# copies or substantial portions of the Software.
16-
#
16+
#
1717
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1818
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1919
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -47,7 +47,7 @@ class Driver:
4747
input_quit_if_vulnerable = False
4848

4949
crawler_options = Options()
50-
50+
5151
website_details = None
5252

5353
vulnerable_requests = []
@@ -68,9 +68,9 @@ def __init__(self, uri, verify_exploit, use_crawler, quit_if_vulnerable):
6868
self.crawler_options.scope.protocol_must_match = False
6969
self.crawler_options.scope.subdomain_must_match = True
7070
self.crawler_options.scope.domain_must_match = True
71-
self.crawler_options.scope.max_depth = 0 if not self.input_use_crawler else None
71+
self.crawler_options.scope.max_depth = 0 if not self.input_use_crawler else None
7272

73-
self.crawler_options.performance.max_threads = 8
73+
self.crawler_options.performance.max_threads = 12
7474

7575
try:
7676
self.website_details = Scraper.get_details(self.input_uri);
@@ -98,7 +98,7 @@ def cb_crawler_after_finish(self, queue):
9898

9999
def cb_request_before_start(self, queue, queue_item):
100100
Logging.info("Checking {}".format(queue_item.request.url))
101-
101+
102102
result = Exploit.is_vulnerable(queue_item, self.website_details["angular_version"], self.input_verify_exploit)
103103

104104
if result is not False:

acstis/Exploit.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# -*- coding: utf-8 -*-
22

33
# MIT License
4-
#
4+
#
55
# Copyright (c) 2017 Tijme Gommers
6-
#
6+
#
77
# Permission is hereby granted, free of charge, to any person obtaining a copy
88
# of this software and associated documentation files (the "Software"), to deal
99
# in the Software without restriction, including without limitation the rights
1010
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1111
# copies of the Software, and to permit persons to whom the Software is
1212
# furnished to do so, subject to the following conditions:
13-
#
13+
#
1414
# The above copyright notice and this permission notice shall be included in all
1515
# copies or substantial portions of the Software.
16-
#
16+
#
1717
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1818
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1919
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -148,7 +148,7 @@ def is_vulnerable(queue_item, version, use_javascript_engine=False):
148148

149149
if use_javascript_engine and not Selenium.alert_is_popped(vulnerable_item):
150150
continue
151-
151+
152152
return vulnerable_item
153153

154154
for param in post_params:
@@ -208,9 +208,9 @@ def get_payloads(version):
208208
def make_request(url, method, data, cookies, headers):
209209
request_by_method = getattr(requests, method)
210210
return request_by_method(
211-
url=url,
212-
data=data,
213-
cookies=cookies,
211+
url=url,
212+
data=data,
213+
cookies=cookies,
214214
headers=headers,
215215
allow_redirects=True,
216216
stream=True

acstis/__init__.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# -*- coding: utf-8 -*-
2+
3+
# MIT License
4+
#
5+
# Copyright (c) 2017 Tijme Gommers
6+
#
7+
# Permission is hereby granted, free of charge, to any person obtaining a copy
8+
# of this software and associated documentation files (the "Software"), to deal
9+
# in the Software without restriction, including without limitation the rights
10+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11+
# copies of the Software, and to permit persons to whom the Software is
12+
# furnished to do so, subject to the following conditions:
13+
#
14+
# The above copyright notice and this permission notice shall be included in all
15+
# copies or substantial portions of the Software.
16+
#
17+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23+
# SOFTWARE.
24+
25+
import sys
26+
27+
if sys.version_info.major != 3 or sys.version_info.minor < 4:
28+
print("ACSTIS requires Python 3.4 or higher!")
29+
print("You are currently using Python {}.{}.".format(sys.version_info.major, sys.version_info.minor))
30+
sys.exit(1)
File renamed without changes.
File renamed without changes.

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ beautifulsoup4==4.5.3
22
colorama==0.3.7
33
selenium==3.0.2
44
requests==2.13.0
5-
nyawc==1.4.1
5+
nyawc==1.4.7

setup.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
# -*- coding: utf-8 -*-
22

33
# MIT License
4-
#
4+
#
55
# Copyright (c) 2017 Tijme Gommers
6-
#
6+
#
77
# Permission is hereby granted, free of charge, to any person obtaining a copy
88
# of this software and associated documentation files (the "Software"), to deal
99
# in the Software without restriction, including without limitation the rights
1010
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1111
# copies of the Software, and to permit persons to whom the Software is
1212
# furnished to do so, subject to the following conditions:
13-
#
13+
#
1414
# The above copyright notice and this permission notice shall be included in all
1515
# copies or substantial portions of the Software.
16-
#
16+
#
1717
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1818
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1919
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -28,7 +28,7 @@
2828
requirements = file.read().splitlines()
2929

3030
setup(
31-
version ="2.0.8",
31+
version ="2.0.8",
3232
name = "acstis",
3333
description = "Automated client-side template injection (CSTI, sandbox escape/bypass) detection for AngularJS!",
3434
long_description = "",
@@ -48,7 +48,6 @@
4848
"Programming Language :: Python :: 3.6",
4949
"Programming Language :: Python :: 3.5",
5050
"Programming Language :: Python :: 3.4",
51-
"Programming Language :: Python :: 3.3",
5251
"Topic :: Security"
5352
],
5453
packages = find_packages(),
@@ -60,7 +59,7 @@
6059
install_requires = requirements,
6160
entry_points = {
6261
'console_scripts': [
63-
'acstis = scripts.acstis_cli:main'
62+
'acstis = acstis_scripts.acstis_cli:main'
6463
]
6564
},
6665
package_data={

0 commit comments

Comments
 (0)