Mayk0

#; Live HTTP Support (RHINO) 4.1 Cross Site Scripting Vulner

Mar 2nd, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. Full title Live HTTP Support (RHINO) 4.1 Cross Site Scripting Vulnerability
  2. Date add 2014-03-02
  3. Category web applications
  4. Platform php
  5. Risk <font color="#FFFF00">Security Risk Medium</font>
  6. Description Live HTTP Support (RHINO) version 4.1 suffers from cross site scripting and remote change password vulnerabilities.
  7.  
  8. =======================================
  9.  
  10. Advisory: Live http support (RHINO) 4.1 (Frontend) - XSS & Remote
  11. Change Password
  12. Author: Slotleet
  13. Affected Software: Successfully tested on Live http support (RHINO) 4.1
  14. Vendor URL: http://www.livesupportrhino.com
  15. Vendor Status: Not Fixed
  16.  
  17. ==========================
  18. Vulnerability Description
  19. ==========================
  20.  
  21. The Live http Support (RHINO) 4.1 (Backend) is prone to XSS & Remote Change
  22. Password
  23.  
  24. ==========================
  25. PoC-Exploit
  26. ==========================
  27.  
  28. // Non-Persistent XSS with "callback" Parameter in
  29. /include/proactive_cross.php
  30.  
  31. (1) Under "callback" set your GET Parameter Callback to
  32. "><script>alert(document.cookie)</script>
  33.  
  34. The Non-Persistent XSS will be executed for the Administrator in the
  35. browser (he directly logged in because you chatting with him)
  36.  
  37. // Remote Change Password - with "Forgot.php"
  38.  
  39. http://[target]/rhino/operator/index.php?p=forgot
  40.  
  41. (1) in the forgot file there's no condition if the user logged in or not,
  42. so we can look deeply in the file in line (27-67)
  43.  
  44. if ($_SERVER["REQUEST_METHOD"] == 'POST' && isset($_POST['newP'])) {
  45. $defaults = $_POST;
  46.  
  47. $femail = filter_var($_POST['f_email'], FILTER_SANITIZE_EMAIL);
  48. $pass = $_POST['f_pass'];
  49. $newpass = $_POST['f_newpass'];
  50.  
  51. if ($pass != $newpass) {
  52. $errors['e1'] = $tl['error']['e10'];
  53. } elseif (strlen($pass) <= '5') {
  54. $errors['e1'] = $tl['error']['e11'];
  55. }
  56.  
  57. if ($defaults['f_email'] == '' || !filter_var($defaults['f_email'],
  58. FILTER_VALIDATE_EMAIL)) {
  59. $errors['e'] = $tl['error']['e3'];
  60. }
  61.  
  62. $fwhen = 0;
  63.  
  64. $user_check = $lsuserlogin->lsForgotpassword($femail, $fwhen);
  65. if ($user_check == true && count($errors) == 0) {
  66.  
  67. // The new password encrypt with hash_hmac
  68. $passcrypt = hash_hmac('sha256', $pass, DB_PASS_HASH);
  69.  
  70. $result2 = $lsdb->query('UPDATE '.DB_PREFIX.'user SET password =
  71. "'.$passcrypt.'", forgot = 0 WHERE email = "'.smartsql($femail).'"');
  72.  
  73. $result = $lsdb->query('SELECT username FROM '.DB_PREFIX.'user WHERE
  74. email = "'.smartsql($femail).'" LIMIT 1');
  75. $row = $result->fetch_assoc();
  76.  
  77. if (!$result) {
  78. ls_redirect(JAK_PARSE_ERROR);
  79. } else {
  80. $lsuserlogin->lsLogin($row['username'], $pass, 0);
  81. ls_redirect(BASE_URL);
  82. }
  83.  
  84. } else {
  85. $errorsf = $errors;
  86. }
  87. }
  88.  
  89. So there is an MySQL Query to execute if the email in the database (Show up
  90. the change password settings).
  91.  
  92. ALL YOU HAVE TO DO IS DISCOVER THE E-MAIL ADDRESS THAT PUTTED WHEN ADMIN
  93. INSTALLED THE SCRIPT.
  94.  
  95.  
  96. ==========================
  97. Solution
  98. ==========================
  99.  
  100. Send activation code to the e-mail address.
  101.  
  102. ==========================
  103. Disclosure Timeline
  104. ==========================
  105.  
  106. 30-Jan-2014 - developer informed by email
  107. 30-Jan-2014 - Developer didn't Respond
  108. 31-Jan-2014 - Still Not Respond
  109. 06-Feb-2014 - Vulnerability Discovered
  110.  
  111. ==========================
  112. Credits
  113. ==========================
  114.  
  115. Vulnerabilities found and advisory written by Slotleet.
Add Comment
Please, Sign In to add comment