@@ -1066,6 +1084,17 @@
Your log4shell token is active!
$('#result_dns').val(data['Hostname']);
};
+ var _handleSecureNoteResponse = function(data) {
+ $('#result_secure_note').val(data['Url'] + "#secret_key=" + encodeURIComponent(document.secreykey_b64));
+ $('#result_secure_note').siblings('.refresh').on('click', function() {
+ url = [data['Url_components'][0].random(),
+ data['Url_components'][1].random(),
+ data['Token'],
+ data['Url_components'][2].random()].join('/');
+ $('#result_secure_note').val(url);
+ });
+ };
+
var _handleAWSKeysResponse = function(data){
$('#result_aws_keys').val('[default]'+
'\naws_access_key_id = '+ data['aws_access_key_id']+
@@ -1107,6 +1136,53 @@
Your log4shell token is active!
var _handleClonedWebsiteResponse = function(data) {
$('#result_cloned_website').val(data['clonedsite_js']);
}
+
+ function encryptText(plaintext, key, initialization_vector) {
+ let data = new TextEncoder().encode(plaintext);
+ return window.crypto.subtle.encrypt(
+ {
+ name: "AES-GCM",
+
+ //Don't re-use initialization vectors!
+ //Always generate a new iv every time your encrypt!
+ //Recommended to use 12 bytes length
+ iv: initialization_vector,
+
+ //Tag length (optional)
+ tagLength: 128, //can be 32, 64, 96, 104, 112, 120 or 128 (default)
+ },
+ key, //from generateKey or importKey above
+ data //ArrayBuffer of data you want to encrypt
+ )
+ .then(function(encrypted){
+ //returns an ArrayBuffer containing the encrypted data
+ return new Uint8Array(encrypted);
+ })
+ }
+
+ var _handleSecureNoteRequest = async function(form) {
+ let plaintext = $('textarea[name=secure_note_text]').val();
+ let key = await window.crypto.subtle.generateKey(
+ {
+ name: "AES-GCM",
+ length: 128,
+ },
+ true, //whether the key is extractable (i.e. can be used in exportKey)
+ ["encrypt", "decrypt"] //can "encrypt", "decrypt", "wrapKey", or "unwrapKey"
+ );
+ let initialization_vector = window.crypto.getRandomValues(new Uint8Array(12));
+ let ciphertext = await encryptText(plaintext, key, initialization_vector);
+ let secretkey = new Uint8Array(await window.crypto.subtle.exportKey("raw", key));
+ ciphertext_b64 = btoa(String.fromCharCode.apply(null, ciphertext));
+ let initialization_vector_b64 = btoa(String.fromCharCode.apply(null, initialization_vector));
+ document.secreykey_b64 = btoa(String.fromCharCode.apply(null, secretkey));
+ $('input[name=secure_note_ciphertext]').val(ciphertext_b64);
+ $('input[name=secure_note_initialization_vector]').val(initialization_vector_b64);
+ let fd = new FormData(form[0]);
+
+ fd.set("secure_note_text", "[message was encrypted]"); // prevent plaintext note being sent to the server
+ return fd;
+ }
var _handleQrCodeResponse = function(data) {
$('#qrcode_png').siblings('a').prop('href', data['qrcode_png']);
$('#qrcode_png').siblings('a').prop('download', data['Token']+'.png');
@@ -1170,6 +1246,7 @@
Your log4shell token is active!
var _requestCallbacks = {'web_image': _handleWebImageRequest,
'cloned_website': _handleClonedWebsiteRequest,
+ 'secure_note': _handleSecureNoteRequest,
'default': _handleDefaultRequest};
var _responseCallbacks = {'web': _handleWebResponse,
@@ -1186,6 +1263,7 @@
Your log4shell token is active!
'smtp': _handleSMTPResponse,
'sql_server': _handleSQLServerResponse,
'my_sql': _handleMySQLResponse,
+ 'secure_note': _handleSecureNoteResponse,
'signed_exe': _handlerSignedExeResponse,
'fast_redirect': _handleFastRedirectResponse,
'slow_redirect': _handleSlowRedirectResponse,
@@ -1195,7 +1273,8 @@
Your log4shell token is active!
'default': _handleDefaultResponse
};
- function processForm( e ){
+ async function processForm( e ){
+ e.preventDefault();
var type = $('input[name=type]').val();
var data;
@@ -1204,7 +1283,8 @@
Your log4shell token is active!
cb = _requestCallbacks['default'];
}
- data = cb($(this));
+ data = cb($(this))
+ data = await Promise.resolve(data);
// Safari Web Browser can't handle input types of file to be empty fields and Edge can't handle incomplete formData fields, but doesn't mind if they are empty.
// Thus it is checked whether the browser is Edge and if so the data is left in its original format. If it is any other browser, all empty input fields
diff --git a/templates/secure_note.html b/templates/secure_note.html
new file mode 100644
index 000000000..9e5cb9a86
--- /dev/null
+++ b/templates/secure_note.html
@@ -0,0 +1,280 @@
+{% macro textareacopy(name)%}
+
+
+
+
+{%- endmacro %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Canarytokens
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Your secure note is below
+
+
The owner of the email registered with this token has been notified of this access attempt.
+
+
Decrypted note contents:
+
+
+
+
+ Remember, it gets triggered whenever someone requests the
+ URL.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/templates/static/secure-note.png b/templates/static/secure-note.png
new file mode 100644
index 000000000..58e4d037d
Binary files /dev/null and b/templates/static/secure-note.png differ
diff --git a/templates/static/styles.css b/templates/static/styles.css
index 542925d1a..b3785cca6 100644
--- a/templates/static/styles.css
+++ b/templates/static/styles.css
@@ -507,6 +507,9 @@
a.icon-word:before {
background-image: url("/resources/word.png");
}
+ a.icon-secure-note:before {
+ background-image: url("/resources/secure-note.png");
+ }
a.icon-excel:before {
background-image: url("/resources/excel.png");
}
diff --git a/templates/static/styles.min.css b/templates/static/styles.min.css
index d44270c27..10974eddb 100644
--- a/templates/static/styles.min.css
+++ b/templates/static/styles.min.css
@@ -1 +1 @@
-.logo{height:32px}.hidden{display:none!important}.step{border-bottom:5px solid #fff;padding:1rem 0rem}.error-outline{outline:none;border-color:#1ecaed;box-shadow:0 0 10px red}.success-outline{outline:none;border-color:#1ecaed;box-shadow:0 0 10px green}a.fileupload-clear:hover{text-decoration:none}.jumbotron{padding:0;position:relative}.create{z-index:1;position:relative;padding:2rem 1rem}.create-hidden{transition:opacity .5s ease;display:none}.history-header{text-align:center;padding:2rem 1rem;margin-bottom:2rem;background-color:#eceeef;border-radius:.3rem}.details-header{padding:.7rem;text-align:center}.footer{text-align:center}.incident-size{margin:0 auto;display:none}.incident-list{overflow:auto;position:relative;margin-bottom:10px;margin-top:10px}.incident-item{width:100%;transition:opacity .5s ease;background-color:aliceblue;color:darkslategrey;border-radius:.3rem;margin-bottom:.5rem;cursor:pointer}.incident-item-details{display:none;padding:1rem}.incident-item:hover{outline:none;border-color:#1ecaed;box-shadow:0 0 10px green}.header_row{font-weight:bold}.incident-item:first-child{margin-top:.5rem}.success{width:100%;z-index:0;transition:opacity .5s ease;background-color:aliceblue;color:darkslategrey;padding-top:1rem;padding-bottom:2rem;border-radius:.3rem;display:none}.success-visible{z-index:2;display:block}.results{padding-top:1rem}input.form-control,input.fileupload,textarea{margin-top:10px;margin-bottom:10px;text-align:center}input.form-control::-webkit-input-placeholder,textarea.form-control::-webkit-input-placeholder{color:#bbb}input.form-control:-moz-placeholder,textarea.form-control:-moz-placeholder{color:#bbb}input.form-control::-moz-placeholder,textarea.form-control::-moz-placeholder{color:#bbb}input.form-control:placeholder,textarea.form-control:placeholder{color:#bbb}.form-control{border:2px solid #dadada;border-radius:7px}.form-control:focus{outline:none;border-color:#9ecaed;box-shadow:0 0 10px #9ecaed}.step:last-child{border-bottom:none;padding-bottom:0rem}.wrapper-dropdown{position:relative;margin:0 auto;margin-bottom:10px;padding:12px 15px;background:#fff;border-radius:5px;cursor:pointer;outline:none;transition:all .3s ease-out}.wrapper-dropdown:after{content:"";width:0;height:0;position:absolute;top:50%;right:15px;margin-top:-3px;border-width:6px 6px 0 6px;border-style:solid;border-color:#4cbeff transparent}.success-outline.wrapper-dropdown:after{border-color:green transparent}.wrapper-dropdown .dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border-radius:0 0 5px 5px;border:1px solid rgba(0,0,0,0.2);border-top:none;border-bottom:none;list-style:none;transition:all .3s ease-out;padding-left:0;max-height:0;overflow:hidden;z-index:999}.wrapper-dropdown .dropdown li{}.wrapper-dropdown .dropdown li a{display:block;text-decoration:none;color:#333;padding:10px 0;transition:all .3s ease-out;border-bottom:1px solid #e6e8ea}.wrapper-dropdown .dropdown li:last-of-type a{border:none}.wrapper-dropdown .dropdown li i{margin-right:5px;color:inherit;vertical-align:middle}.wrapper-dropdown .dropdown li:hover a{color:#57a9d9;background-color:#eee}.wrapper-dropdown.active{border-radius:5px 5px 0 0;background:#4cbeff;box-shadow:none;border-bottom:2px solid #eceeef;color:white}.wrapper-dropdown.active:after{border-color:#82d1ff transparent}.wrapper-dropdown.active .dropdown{border-bottom:1px solid rgba(0,0,0,0.2);max-height:400px;overflow:scroll}.explanation{font-size:smaller;color:#999}.fileupload-wrapper{display:block;position:relative;cursor:pointer;overflow:hidden;width:100%;max-width:100%;padding:5px 10px;margin-top:15px;font-size:14px;line-height:22px;color:#777;background-color:#FFF;background-image:none;text-align:center;border:2px solid #E5E5E5;-webkit-transition:border-color .15s linear;transition:border-color .15s linear}.fileupload-wrapper .fileupload-message{position:relative;-webkit-transform:translateY(35%);transform:translateY(35%);text-align:center;font-family:sans-serif;font-size:16px;color:#bbb}.fileupload-wrapper input{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;width:100%;opacity:0;cursor:pointer;z-index:5}.fileupload-wrapper .fileupload-filename{font-size:16px;position:relative;transform:translateY(35%)}.fileupload-wrapper p{padding-bottom:0}#create-token-p{margin-top:1rem;margin-bottom:0rem}#save.btn-fullwidth{width:100%}@media(min-width:500px){#save.btn-fullwidth{font-size:2rem}}#save.btn-disabled{font-size:1rem;width:14rem;background-color:#faa;border:none}a.btn-success.btn:hover,a.btn-success.btn:focus{color:#fff}.result{display:none}#result_cloned_website{height:10rem}.jumbotron .btn.btn-clipboard{background-color:#9d8;padding:.5rem;font-size:inherit}.btn-clipboard>img{max-width:15px}.result-data{width:80%;border:none;font-family:monospace}.advice{text-align:left;margin-top:2rem}.create-link{text-align:center;margin-bottom:15px}.create-link a{}a.refresh{font-size:1.5rem;vertical-align:middle;text-decoration:none}a.refresh:hover{cursor:pointer}.pre-like{display:block;font-family:monospace;white-space:pre;margin:1em 0;word-break:break-all;overflow:scroll;text-align:left}.error-field{display:none;color:red;border-bottom:1px solid red;border-radius:6px;margin-bottom:24px}#endpoints_errors{border:1px solid red;margin:24px 0;padding:0 5px}#endpoints_errors pre{color:#eceeef;background:firebrick}.map{position:relative;margin-bottom:10px;margin-top:10px;height:400px;border-radius:5px;border:7px solid #dadada}.setting .key{text-align:right}.setting .value{text-align:left}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:hover{background-color:#449d44;border-color:#419641}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.jumbotron .btn.btn-clipboard{background-color:#5cb85c;border-color:#5cb85c;color:#fff}.setting .key small{font-size:.6rem;color:#999;vertical-align:top}@media(min-width:48em){.container{max-width:100%}}.jumbotron{max-width:46rem;margin:auto;margin-bottom:2rem}a.icon:before{display:block;position:absolute;margin-right:10px;margin-left:10px;content:"";height:40px;width:40px;background-size:contain;-webkit-transition:all .4s ease-in-out;-moz-transition:all .4s ease-in-out;transition:all .4s ease-in-out;-webkit-transform:translate3d(0,0,0)}@media(max-width:768px){a.icon:before{width:20px;height:20px}}a.icon-web:before{background-image:url("/resources/web.png")}a.icon-dns:before{background-image:url("/resources/dns.png")}a.icon-web-image:before{background-image:url("/resources/web_image.png")}a.icon-email:before{background-image:url("/resources/email.png")}a.icon-word:before{background-image:url("/resources/word.png")}a.icon-excel:before{background-image:url("/resources/excel.png")}a.icon-pdf:before{background-image:url("/resources/pdf.png")}a.icon-wireguard:before{background-image:url("/resources/wireguard.png")}a.icon-folder:before{background-image:url("/resources/folder.png")}a.icon-exe:before{background-image:url("/resources/exe.png")}a.icon-clonedsite:before{background-image:url("/resources/clonedsite.png")}a.icon-sqlserver:before{background-image:url("/resources/sqlserver.png")}a.icon-mysql:before{background-image:url("/resources/mysql.png")}a.icon-qrcode:before{background-image:url("/resources/qrcode.png")}a.icon-svn:before{background-image:url("/resources/svn.png")}a.icon-aws:before{background-image:url("/resources/aws.png")}a.icon-redirect:before{background-image:url("/resources/redirect.png")}a.icon-kubernetes:before{background-image:url("/resources/kubernetes_icon.png")}a.icon-log4shell:before{background-image:url("/resources/log4j.png")}@media(max-width:768px){input.form-control:-moz-placeholder,textarea.form-control:-moz-placeholder{font-size:.8rem}input.form-control::-moz-placeholder,textarea.form-control::-moz-placeholder{font-size:.8rem}input.form-control:placeholder,textarea.form-control:placeholder{font-size:.8rem}input.form-control::-webkit-input-placeholder,textarea.form-control::-webkit-input-placeholder{font-size:.8rem}.setting .key{text-align:center}.setting .value{text-align:center;margin-bottom:1rem}.artifacts{margin-left:10px;margin-right:10px}.row.results{margin-left:10px;margin-right:10px}}@media(max-width:500px){input.form-control:-moz-placeholder,textarea.form-control:-moz-placeholder{font-size:.5rem}input.form-control::-moz-placeholder,textarea.form-control::-moz-placeholder{font-size:.5rem}input.form-control:placeholder,textarea.form-control:placeholder{font-size:.5rem}input.form-control::-webkit-input-placeholder,textarea.form-control::-webkit-input-placeholder{font-size:.5rem}.token-length{font-size:1.2rem}.setting .key{text-align:center}.setting .value{text-align:center;margin-bottom:1rem}.artifacts{margin-left:10px;margin-right:10px}.row.results{margin-left:5px;margin-right:5px}a.btn.btn-large.btn-success{font-size:.9rem}}#mainsite{font-size:smaller;padding-top:1.5rem}.mysql-encoded-button{margin-top:10px;text-align:center}.mysql-text{text-align:left}.mysqldownload{cursor:pointer}#wg_conf{background:#f6f6f6;display:block;white-space:pre;overflow-x:scroll;max-width:100%;min-width:100px;padding:0;text-align:left;border-radius:8px;padding-bottom:12px;padding-left:12px;padding-top:12px;margin-bottom:7px;margin-top:7px;margin-left:0}#wireguard-app{margin-bottom:16px}#wireguard-app img{height:40px}
\ No newline at end of file
+.logo{height:32px}.hidden{display:none!important}.step{border-bottom:5px solid #fff;padding:1rem 0rem}.error-outline{outline:none;border-color:#1ecaed;box-shadow:0 0 10px red}.success-outline{outline:none;border-color:#1ecaed;box-shadow:0 0 10px green}a.fileupload-clear:hover{text-decoration:none}.jumbotron{padding:0;position:relative}.create{z-index:1;position:relative;padding:2rem 1rem}.create-hidden{transition:opacity .5s ease;display:none}.history-header{text-align:center;padding:2rem 1rem;margin-bottom:2rem;background-color:#eceeef;border-radius:.3rem}.details-header{padding:.7rem;text-align:center}.footer{text-align:center}.incident-size{margin:0 auto;display:none}.incident-list{overflow:auto;position:relative;margin-bottom:10px;margin-top:10px}.incident-item{width:100%;transition:opacity .5s ease;background-color:aliceblue;color:darkslategrey;border-radius:.3rem;margin-bottom:.5rem;cursor:pointer}.incident-item-details{display:none;padding:1rem}.incident-item:hover{outline:none;border-color:#1ecaed;box-shadow:0 0 10px green}.header_row{font-weight:bold}.incident-item:first-child{margin-top:.5rem}.success{width:100%;z-index:0;transition:opacity .5s ease;background-color:aliceblue;color:darkslategrey;padding-top:1rem;padding-bottom:2rem;border-radius:.3rem;display:none}.success-visible{z-index:2;display:block}.results{padding-top:1rem}input.form-control,input.fileupload,textarea{margin-top:10px;margin-bottom:10px;text-align:center}input.form-control::-webkit-input-placeholder,textarea.form-control::-webkit-input-placeholder{color:#bbb}input.form-control:-moz-placeholder,textarea.form-control:-moz-placeholder{color:#bbb}input.form-control::-moz-placeholder,textarea.form-control::-moz-placeholder{color:#bbb}input.form-control:placeholder,textarea.form-control:placeholder{color:#bbb}.form-control{border:2px solid #dadada;border-radius:7px}.form-control:focus{outline:none;border-color:#9ecaed;box-shadow:0 0 10px #9ecaed}.step:last-child{border-bottom:none;padding-bottom:0rem}.wrapper-dropdown{position:relative;margin:0 auto;margin-bottom:10px;padding:12px 15px;background:#fff;border-radius:5px;cursor:pointer;outline:none;transition:all .3s ease-out}.wrapper-dropdown:after{content:"";width:0;height:0;position:absolute;top:50%;right:15px;margin-top:-3px;border-width:6px 6px 0 6px;border-style:solid;border-color:#4cbeff transparent}.success-outline.wrapper-dropdown:after{border-color:green transparent}.wrapper-dropdown .dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border-radius:0 0 5px 5px;border:1px solid rgba(0,0,0,0.2);border-top:none;border-bottom:none;list-style:none;transition:all .3s ease-out;padding-left:0;max-height:0;overflow:hidden;z-index:999}.wrapper-dropdown .dropdown li{}.wrapper-dropdown .dropdown li a{display:block;text-decoration:none;color:#333;padding:10px 0;transition:all .3s ease-out;border-bottom:1px solid #e6e8ea}.wrapper-dropdown .dropdown li:last-of-type a{border:none}.wrapper-dropdown .dropdown li i{margin-right:5px;color:inherit;vertical-align:middle}.wrapper-dropdown .dropdown li:hover a{color:#57a9d9;background-color:#eee}.wrapper-dropdown.active{border-radius:5px 5px 0 0;background:#4cbeff;box-shadow:none;border-bottom:2px solid #eceeef;color:white}.wrapper-dropdown.active:after{border-color:#82d1ff transparent}.wrapper-dropdown.active .dropdown{border-bottom:1px solid rgba(0,0,0,0.2);max-height:400px;overflow:scroll}.explanation{font-size:smaller;color:#999}.fileupload-wrapper{display:block;position:relative;cursor:pointer;overflow:hidden;width:100%;max-width:100%;padding:5px 10px;margin-top:15px;font-size:14px;line-height:22px;color:#777;background-color:#FFF;background-image:none;text-align:center;border:2px solid #E5E5E5;-webkit-transition:border-color .15s linear;transition:border-color .15s linear}.fileupload-wrapper .fileupload-message{position:relative;-webkit-transform:translateY(35%);transform:translateY(35%);text-align:center;font-family:sans-serif;font-size:16px;color:#bbb}.fileupload-wrapper input{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;width:100%;opacity:0;cursor:pointer;z-index:5}.fileupload-wrapper .fileupload-filename{font-size:16px;position:relative;transform:translateY(35%)}.fileupload-wrapper p{padding-bottom:0}#create-token-p{margin-top:1rem;margin-bottom:0rem}#save.btn-fullwidth{width:100%}@media(min-width:500px){#save.btn-fullwidth{font-size:2rem}}#save.btn-disabled{font-size:1rem;width:14rem;background-color:#faa;border:none}a.btn-success.btn:hover,a.btn-success.btn:focus{color:#fff}.result{display:none}#result_cloned_website{height:10rem}.jumbotron .btn.btn-clipboard{background-color:#9d8;padding:.5rem;font-size:inherit}.btn-clipboard>img{max-width:15px}.result-data{width:80%;border:none;font-family:monospace}.advice{text-align:left;margin-top:2rem}.create-link{text-align:center;margin-bottom:15px}.create-link a{}a.refresh{font-size:1.5rem;vertical-align:middle;text-decoration:none}a.refresh:hover{cursor:pointer}.pre-like{display:block;font-family:monospace;white-space:pre;margin:1em 0;word-break:break-all;overflow:scroll;text-align:left}.error-field{display:none;color:red;border-bottom:1px solid red;border-radius:6px;margin-bottom:24px}#endpoints_errors{border:1px solid red;margin:24px 0;padding:0 5px}#endpoints_errors pre{color:#eceeef;background:firebrick}.map{position:relative;margin-bottom:10px;margin-top:10px;height:400px;border-radius:5px;border:7px solid #dadada}.setting .key{text-align:right}.setting .value{text-align:left}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary:hover,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary:hover{background-color:#449d44;border-color:#419641}.bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary,.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary{color:#fff;background-color:#5cb85c;border-color:#5cb85c}.jumbotron .btn.btn-clipboard{background-color:#5cb85c;border-color:#5cb85c;color:#fff}.setting .key small{font-size:.6rem;color:#999;vertical-align:top}@media(min-width:48em){.container{max-width:100%}}.jumbotron{max-width:46rem;margin:auto;margin-bottom:2rem}a.icon:before{display:block;position:absolute;margin-right:10px;margin-left:10px;content:"";height:40px;width:40px;background-size:contain;-webkit-transition:all .4s ease-in-out;-moz-transition:all .4s ease-in-out;transition:all .4s ease-in-out;-webkit-transform:translate3d(0,0,0)}@media(max-width:768px){a.icon:before{width:20px;height:20px}}a.icon-web:before{background-image:url("/resources/web.png")}a.icon-dns:before{background-image:url("/resources/dns.png")}a.icon-web-image:before{background-image:url("/resources/web_image.png")}a.icon-email:before{background-image:url("/resources/email.png")}a.icon-secure-note:before{background-image:url("/resources/secure-note.png")}a.icon-word:before{background-image:url("/resources/word.png")}a.icon-excel:before{background-image:url("/resources/excel.png")}a.icon-pdf:before{background-image:url("/resources/pdf.png")}a.icon-wireguard:before{background-image:url("/resources/wireguard.png")}a.icon-folder:before{background-image:url("/resources/folder.png")}a.icon-exe:before{background-image:url("/resources/exe.png")}a.icon-clonedsite:before{background-image:url("/resources/clonedsite.png")}a.icon-sqlserver:before{background-image:url("/resources/sqlserver.png")}a.icon-mysql:before{background-image:url("/resources/mysql.png")}a.icon-qrcode:before{background-image:url("/resources/qrcode.png")}a.icon-svn:before{background-image:url("/resources/svn.png")}a.icon-aws:before{background-image:url("/resources/aws.png")}a.icon-redirect:before{background-image:url("/resources/redirect.png")}a.icon-kubernetes:before{background-image:url("/resources/kubernetes_icon.png")}a.icon-log4shell:before{background-image:url("/resources/log4j.png")}@media(max-width:768px){input.form-control:-moz-placeholder,textarea.form-control:-moz-placeholder{font-size:.8rem}input.form-control::-moz-placeholder,textarea.form-control::-moz-placeholder{font-size:.8rem}input.form-control:placeholder,textarea.form-control:placeholder{font-size:.8rem}input.form-control::-webkit-input-placeholder,textarea.form-control::-webkit-input-placeholder{font-size:.8rem}.setting .key{text-align:center}.setting .value{text-align:center;margin-bottom:1rem}.artifacts{margin-left:10px;margin-right:10px}.row.results{margin-left:10px;margin-right:10px}}@media(max-width:500px){input.form-control:-moz-placeholder,textarea.form-control:-moz-placeholder{font-size:.5rem}input.form-control::-moz-placeholder,textarea.form-control::-moz-placeholder{font-size:.5rem}input.form-control:placeholder,textarea.form-control:placeholder{font-size:.5rem}input.form-control::-webkit-input-placeholder,textarea.form-control::-webkit-input-placeholder{font-size:.5rem}.token-length{font-size:1.2rem}.setting .key{text-align:center}.setting .value{text-align:center;margin-bottom:1rem}.artifacts{margin-left:10px;margin-right:10px}.row.results{margin-left:5px;margin-right:5px}a.btn.btn-large.btn-success{font-size:.9rem}}#mainsite{font-size:smaller;padding-top:1.5rem}.mysql-encoded-button{margin-top:10px;text-align:center}.mysql-text{text-align:left}.mysqldownload{cursor:pointer}#wg_conf{background:#f6f6f6;display:block;white-space:pre;overflow-x:scroll;max-width:100%;min-width:100px;padding:0;text-align:left;border-radius:8px;padding-bottom:12px;padding-left:12px;padding-top:12px;margin-bottom:7px;margin-top:7px;margin-left:0}#wireguard-app{margin-bottom:16px}#wireguard-app img{height:40px}
\ No newline at end of file