Help
RSS
API
Feed
Maltego
Contact
Domain > alerts.gravitysoft.in
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2020-12-28
3.7.225.49
(
ClassC
)
2026-01-23
202.65.145.151
(
ClassC
)
Port 443
HTTP/1.1 200 OKDate: Fri, 23 Jan 2026 17:23:08 GMTServer: Upgrade: h2,h2cConnection: UpgradeCache-Control: max-age0, no-cache, no-store, must-revalidatePragma: no-cacheX-Mod-Pagespeed: 1.13.35.2-0Vary: Accept-EncodingX-Content-Type-Options: nosniffX-Frame-Options: denystrict-Transport-security: max-age31536000;includesubDomainsX-XSS-Protection: 1;modeblockExpect-CT: enforce, max-age86400Set-Cookie: PHPSESSIDvqrsis6768o7ai0iuh7uehlbn9; path/;HttpOnly;Secure;samesitestrictReferrer-Policy: no-referrerContent-Length: 18914Content-Type: text/html; charsetUTF-8 head/>title> Admin /title>script srcassets/login/jquery.min.js>/script>script srcassets/login/bootstrap.min.js>/script>script srcassets/login/jquery-ui.min.js typetext/javascript>/script>script srcassets/js/core/popper.min.js>/script>script srcassets/js/atlantis.min.js>/script>script typetext/javascript srclib/validation.min.js>/script>link relstylesheet hrefassets/login/font-awesome.min.css>link relstylesheet hrefassets/css/index.css>link relstylesheet hrefassets/css/forgot-module.css>script srcassets/aes.js>/script>script srchttps://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js>/script>!-- ✅ Add this right before your first style> -->script>function get_encrypted(string,password){var encryptedCryptoJS.AES.encrypt(string,password);return encrypted.toString();}/script>script>function encrypt(){var passdocument.getElementById(password).value;if(pass){document.getElementById(err).innerHTMLError:Password is missing;return false;}else{var keyCryptoJS.enc.Hex.parse(da471ff717b8da1c6698ca2c3d15daee);var ivCryptoJS.enc.Hex.parse(154ca59459b1039e08f81e7919cc372e);var secretdocument.getElementById(password).value;var cp_passdocument.getElementById(uname).value;var cp_secretdocument.getElementById(uname).value;var encryptedCryptoJS.AES.encrypt(secret,key,{iv:iv});var cp_encryptedCryptoJS.AES.encrypt(cp_secret,key,{iv:iv});encryptedencrypted.ciphertext.toString(CryptoJS.enc.Base64);cp_encryptedcp_encrypted.ciphertext.toString(CryptoJS.enc.Base64);document.getElementById(password).valueencrypted;document.getElementById(user_name_hidden).valuecp_encrypted;return true;}}/script>div classcontainer idcontainer> div classform-container sign-up-container> div classforgot-password-container> !-- Step 1: Username + Mobile --> form idform-step1> h2>Password Assistance/h2> p>Enter the username or mobile phone number associated with your account./p> div iderror-step1 classtext-danger mb-2>/div> input typetext idusername classinput-field placeholderEnter Username required> input typetext idmobile classinput-field placeholderEnter Mobile Number required maxlength10> button typebutton idbtn-send-otp classbtn-continue>Continue/button> /form> !-- Step 2: OTP --> form idform-step2> h3>Enter verification code/h3> p idotp-message> For your security, we have sent the code to your phone ***-***-**XX. /p> div iderror-step2 classtext-danger mb-2>/div> input typetext idotp-step2 maxlength6 required placeholderEnter code classotp-input> !-- Resend link --> a hrefjavascript:void(0); idbtn-resend classbtn-link>Resend code/a> !-- Countdown message --> div idtimer> span classinfo-icon>ℹ️/span> Please wait span idseconds-left>/span> seconds before requesting another code. /div> button typebutton idbtn-verify-otp classbtn-submit btn-disabled>Submit code/button> p classhelp-text> strong>Need help?/strong>br> If you cannot receive the code or if you changed your email or phone number, Contact Customer Service /p> /form> !-- Step 3: New Password --> form idform-step3> div iderror-step3>/div> div classa-row a-spacing-small> h2>Create new password/h2> p>Well ask for this password whenever you sign in./p> /div> input typepassword idnew_password placeholderNew Password required minlength8> input typepassword idconfirm_password placeholderConfirm Password required minlength8> !-- Secure Password Tips --> div idpassword-tips> strong>Secure password tips:/strong> ul> li>Use at least 8 characters — a mix of numbers, letters, and symbols is best./li> li>Do not reuse passwords you have used with us previously./li> li>Avoid dictionary words, your name, email, or easily guessed personal info./li> li>Use a different password for each online account./li> li>Consider using a password manager to generate and store passwords securely./li> li>Update your passwords regularly to stay protected./li> /ul> /div> button typesubmit idbtn-reset-password classbtn-save>Save changes/button> /form> div idresponseMessage>/div>/div> /div> div classform-container sign-in-container> form idotp-form styledisplay:none; action methodPOST> h1>Sign in/h1> div classsocial-container> /div> div idform_container> input iduser_name nameuser_name typetext placeholderUsername/> input idotp nameotp typetext placeholderOTP/> label formobile classplaceholder stylefont-size:12px;> span stylefloat:left;color:green> OTP sent to registered mobile /span> span stylefloat:right;font-size:12px;color:#1165f5> Resend? /span> /label> button typesubmit namebtn-login-otp idbtn-login-otp>Verify OTP/button> /div> h6> Your data will be treated in accordance with our Privacy Policy which also sets out the rights you have in respect of your data. /h6> /form> form idlogin-form methodPOST action> h1>Sign in/h1> div classsocial-container> /div> div idform_container> input namekey_temp1 typehidden valueda471ff717b8da1c6698ca2c3d15daee/> input nameiv_temp1 typehidden value154ca59459b1039e08f81e7919cc372e/> input iduname nameuser_name typetext placeholderUsername autocompleteOFF minlength3 required maxlength20 autofocus/> input iduser_name_hidden nameuser_name_hidden typehidden/> input idpassword namepassword typepassword placeholderPassword autocompleteOFF minlength4 maxlength20 required /> br> br> a href# idForgot>Forgot Password?/a> br>br> input typesubmit namebtn-login typesubmit onclickreturn encrypt() valueSign In> /div> h6> Your data will be treated in accordance with our Privacy Policy which also sets out the rights you have in respect of your data. /h6> /form> /div> div classoverlay-container> div classoverlay> div classoverlay-panel overlay-left> h1>Welcome Back!/h1> p>To keep connected with us please login with your personal info/p> button classghost idsignIn>Sign In/button> /div> div classoverlay-panel overlay-right> div> h3 stylefloat:right;padding-left:10px> alerts.gravitysoft.in /h3> /div> p>Start journey with bulksms service/p> br> button classghost idsignUp>Sign Up/button> /div> /div> /div>/div>style>.otp-line{gap:20px;justify-content:center}.verify-container{margin-top:15px}/style>script typetext/javascript srclib/validation.min.js>/script>script>$(document).ready(function() { $(#password).bind(cut copy paste, function(e) { e.preventDefault(); $(#password).bind(contextmenu, function(e) { e.preventDefault(); }); }); $(#uname).bind(cut copy paste, function(e) { e.preventDefault(); $(#uname).bind(contextmenu, function(e) { e.preventDefault(); }); });}); const forgotContainer document.querySelector(.forgot-password-container);const signUpButton document.getElementById(signUp);const signInButton document.getElementById(signIn);const container document.getElementById(container);const ForgotButton document.getElementById(Forgot);const signupContainer document.querySelector(.sign-up-container);const originalSignupHTML signupContainer ? signupContainer.innerHTML : ;// Handle Sign Up click if (signUpButton) { signUpButton.addEventListener(click, function (e) { e.preventDefault(); document.querySelector(.sign-in-container).style.display none; // Show contact message instead of sign-up form if (signupContainer) { signupContainer.innerHTML ` div styletext-align:center;padding:150px 20px;> h3>Please contact/h3> div stylemargin-top:20px;> img srcdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAABkAQMAAAAGz5+DAAAABlBMVEX///8AAABVwtN+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAG0lEQVRIie3BgQAAAADDoPlT3+AEVQEAAADPAA88AAFNEVYlAAAAAElFTkSuQmCC width300 /> /div> /div> `; } // Keep overlay effect container.classList.add(right-panel-active); }); }signUpButton.addEventListener(click, () > {container.classList.add(right-panel-active);});ForgotButton.addEventListener(click, () > {container.classList.add(right-panel-active);});// Handle Sign In clickif (signInButton) { signInButton.addEventListener(click, () > { container.classList.remove(right-panel-active); if (signupContainer && originalSignupHTML ! ) { signupContainer.innerHTML originalSignupHTML; } // Show sign-in container again document.querySelector(.sign-in-container).style.display block; });}/script> script>function showMessage(message, typeerror, selector#error-step1) { let color (type success) ? green : red; $(selector).html(message).css({color: color, margin:5px 0}).show();}$(document).ready(function(){ const timerDuration 120; let timerInterval; let resendEnabled false; function updateButtonState(resend, verify) { resendEnabled resend; // 🔹 Track resend availability if (resend) { $(#btn-resend).removeClass(btn-disabled).css({pointer-events: auto, opacity: 1}); } else { $(#btn-resend).addClass(btn-disabled).css({pointer-events: none, opacity: 0.5}); } $(#btn-verify-otp).prop(disabled, !verify) .toggleClass(btn-disabled, !verify); } function startTimer() { clearInterval(timerInterval); let timer timerDuration; updateButtonState(false, true); // Resend disabled, Verify enabled $(#timer).show(); timerInterval setInterval(function(){ // let minutes Math.floor(timer/60); $(#seconds-left).text(timer); // let seconds timer%60; // $(#timer).text((0+minutes).slice(-2) + : + (0+seconds).slice(-2)); if(timer 0){ clearInterval(timerInterval); $(#timer).hide(); // hide message when done updateButtonState(true, false); // Resend enabled, Verify disabled } timer--; }, 1000); } // Initial state updateButtonState(false, true); startTimer(); // start on load $(#btn-resend).click(function(){ if ($(this).prop(disabled)) return; startTimer(); // Add your AJAX resend logic here }); // Step 1: Send OTP $(#btn-send-otp).click(function(){ let username $(#username).val().trim(); let mobile $(#mobile).val().trim(); if(!username || !mobile) { showMessage(Please fill all the details, error, #error-step1); return; } $.post(forgot-send-otp.php, { username, mobile, token: 8a9792dcbcdf856bf70a7145d775d04b11936ee4ec11b27691f067a7a72f753b }, function(res){ let data; try { data (typeof res object) ? res : JSON.parse(res); } catch(e){ showMessage(Invalid server response, error, #error-step1); return; } if(data.status success){ // Dynamically mask mobile number let lastTwo mobile.slice(-2); $(#otp-message).html(`For your security, we have sent the code to your phone ***-***-**${lastTwo}.`); $(#form-step1).hide(); $(#form-step2).show(); startTimer(); } else { showMessage(data.message, error, #error-step1); } }).fail(()> showMessage(Server error, error, #error-step1)); }); // Step 2: Verify OTP $(#btn-verify-otp).click(function(){ let otp $(#otp-step2).val().trim(); let username $(#username).val().trim(); if(!otp){ showMessage(Enter OTP, error, #error-step2); return; } // Encrypt OTP let key CryptoJS.enc.Hex.parse(da471ff717b8da1c6698ca2c3d15daee); let iv CryptoJS.enc.Hex.parse(154ca59459b1039e08f81e7919cc372e); let encryptedOTP CryptoJS.AES.encrypt(otp, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }).ciphertext.toString(CryptoJS.enc.Base64); $.post(forgot-verify-otp.php, { username, otp: encryptedOTP, token: 8a9792dcbcdf856bf70a7145d775d04b11936ee4ec11b27691f067a7a72f753b, key_temp1: da471ff717b8da1c6698ca2c3d15daee, iv_temp1: 154ca59459b1039e08f81e7919cc372e }, function(res){ let data; try { data (typeof res object) ? res : JSON.parse(res); } catch(e){ showMessage(Invalid server response, error, #error-step2); return; } if(data.status success){ clearInterval(timerInterval); $(#form-step2).hide(); $(#form-step3).show(); } else { showMessage(data.message, error, #error-step2); } }).fail(()> showMessage(Server error, error, #error-step2)); }); // Step 3: Reset password $(#form-step3).submit(function(e){ e.preventDefault(); let newPassword $(#new_password).val().trim(); let confirmPassword $(#confirm_password).val().trim(); let mobile $(#mobile).val().trim(); if(!newPassword || !confirmPassword){ showMessage(All fields are required, error, #error-step3); return; } if(newPassword ! confirmPassword){ showMessage(Passwords do not match, error, #error-step3); return; } let key CryptoJS.enc.Hex.parse(da471ff717b8da1c6698ca2c3d15daee); let iv CryptoJS.enc.Hex.parse(154ca59459b1039e08f81e7919cc372e); let encrypted_password CryptoJS.AES.encrypt(newPassword, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }).ciphertext.toString(CryptoJS.enc.Base64); // Disable button $(#btn-reset-password).prop(disabled, true).text(Please wait...); $.ajax({ url: forgot-reset-password.php, type: POST, data: { mobile, encrypted_password, token: 8a9792dcbcdf856bf70a7145d775d04b11936ee4ec11b27691f067a7a72f753b, key_temp1: da471ff717b8da1c6698ca2c3d15daee, iv_temp1: 154ca59459b1039e08f81e7919cc372e }, dataType: json, success: function(res){ if(res.status success){ $(#form-step3).hide(); // Append message *outside* the form // Remove any existing message div $(#reset-success-msg).remove(); // Create a centered message container const msgHTML ` div idreset-success-msg styledisplay: flex; justify-content: center; align-items: center; height: 60vh;> div styletext-align: center;> p stylecolor: green; font-weight: 600; font-size: 20px; margin-bottom: 15px;> ${res.message} /p> p> For login please a hrefindex.php stylecolor: red; text-decoration: underline;>click here/a>. /p> /div> /div>`; // Append it after form $(#form-step3).after(msgHTML); $(#login-form).hide(); } else { showMessage(res.message, error, #error-step3); $(#btn-reset-password).prop(disabled, false).text(Reset Password); } }, error: function(){ showMessage(Server error, error, #error-step3); $(#btn-reset-password).prop(disabled, false).text(Reset Password); } }); }); // Resend OTP button $(#btn-resend).click(function() { let username $(#username).val().trim(); let mobile $(#mobile).val().trim(); if(username || mobile ) { showMessage(Username or mobile missing, error, #error-step2); return; } updateButtonState(false, true); $.post(forgot-resend-otp.php, { username, mobile, token: 8a9792dcbcdf856bf70a7145d775d04b11936ee4ec11b27691f067a7a72f753b }, function(res){ let data; try { data (typeof res object) ? res : JSON.parse(res); } catch(e){ showMessage(Invalid server response, error, #error-step2); return; } if(data.status success){ $(#otp-step2).val(); startTimer(); // Restart timer } else { showMessage(data.message, error, #error-step2); updateButtonState(false, true); // Keep resend disabled until timer ends } }).fail(()> { showMessage(Server error. Try again., error, #error-step2); updateButtonState(true, true); // Re-enable buttons on failure }); });});/script>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]