Guest User

Untitled

a guest
Jun 20th, 2017
38
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.71 KB | None | 0 0
  1. Title: Force a user to join your team
  2. Weakness: Cross-Site Request Forgery (CSRF)
  3. Severity: No Rating
  4. Link: https://hackerone.com/reports/193053
  5. Date: 2016-12-21 12:52:55 +0000
  6. By: @exception
  7.  
  8. Details:
  9. Hi Mr @raaghavs
  10.  
  11. I have another csrf here.
  12.  
  13. Hellosign offers Team member adding for premium accounts , free accounts can not add team members.
  14. When a premium account invites a user , a link for the invtiation is sent to the invited user.
  15.  
  16. Now if the invited user logged in his account , he is offered a form to determine if he will accept the invitation or cancel it .
  17. {F145796}
  18. If the user clicked Accpet , An HTTP Get request is issued to
  19. `https://www.hellosign.com/account/confirmTeamInvite/guid/___GUID__Value___/does_accept/1`
  20. With no csrf token implemented.
  21.  
  22.  
  23. Now if the team admin made the invited user visits a page contains a link of the invitation , he will force the user to accept the invitation.
  24.  
  25. #Vulnerable Url
  26. ```
  27. https://www.hellosign.com/account/confirmTeamInvite/guid/___GUID__Value___/does_accept/1
  28. ```
  29.  
  30. ```
  31. <html>
  32. <!-- The page wihch the victim will visit -->
  33. <img sc=`https://www.hellosign.com/account/confirmTeamInvite/guid/___GUID__Value___/does_accept/1` />
  34. </html>
  35. ```
  36.  
  37. #reproduce
  38. 1- Log into premium account
  39. 2- Pick another account
  40. 3- invite the second account (this required to get the `guid` value)
  41. 4- invite the victim user
  42. 5- Log in the second account
  43. 6- navigate to team area, you will see the invitation form,click accept
  44. 7- Capture the request using proxy or developer tools in chrome or firefox
  45. 8- Send the link to the victim user
  46. 9- When the victim visits the link , he will be forced to join your team
  47.  
  48.  
  49. #Fix
  50. - You should implement a csrf token
  51.  
  52.  
  53. Happy Fixing
  54. Best Regards
  55.  
  56.  
  57. Timeline:
  58. 2016-12-22 02:03:18 +0000: @raaghavs (bug needs more info)
  59. @exception - Can you share a working video POC? We are unable to reproduce the issue. The guid randomly generated as part of the team invite is tied to the e-mail account of the team member being added and would fail if executed by anyone else. Also, in order to fetch the correct guid you would need access to the victim's e-mail/hellosign account, so I would assume it would not be feasible to perform a CSRF attack in this case. Please share a video POC if you disapprove and have found a way of exploiting this via CSRF.
  60.  
  61. FYI @nealomara and @anshu
  62.  
  63. ---
  64.  
  65. 2016-12-22 19:25:44 +0000: @exception (bug new)
  66. Check the attachments ,I already sent a poc , in this poc first I invited my second account in order to get guide parameter , second I invited the victim then logged in my second account and fetched for the guide parameter and inserted in my html code and made the victim visits my code , and it worked.
  67.  
  68. ---
  69.  
  70. 2016-12-22 19:40:07 +0000: @raaghavs (bug needs more info)
  71. @exception - Are your second account and the victim account two different accounts?
  72.  
  73. ---
  74.  
  75. 2016-12-26 00:16:53 +0000: @exception (bug new)
  76. Yes , they are different.
  77. Here is a [youtube video ](https://www.youtube.com/watch?v=rNishWTLkLM&feature=youtu.be) , in this video i used
  78. - `gersy.ch2@gmail.com` as attacker premium account
  79. - `attacker-acc-2@yopmail.com` as attacker second account (to get the guid par)
  80. - `victim-acc-1@yopmail.com` as a victim
  81. - `thejextrix@gmail.com` as additional victim
  82.  
  83. I was able to force the two different victims to join my team using one single guid grabbed using my second account `attacker-acc-2@yopmail.com`.
  84.  
  85. ---
  86.  
  87. 2016-12-30 12:59:10 +0000: @exception (comment)
  88. Do you face any reproduce-difficulties ? or any update?
  89.  
  90. ---
  91.  
  92. 2017-01-25 11:51:57 +0000: @exception (comment)
  93. Hi Mr @raaghavs
  94.  
  95. I still see this as a valid report , and this issue requires attention
  96. I opened my account `reflected.way@gmail.com` and invited the following emails
  97.  
  98. ```
  99. xchrome@yopmail.com (Invited) 0 Remove
  100. xfirefox@yopmail.com (Invited) 0 Remove
  101. face@yopmail.com (Invited) 0 Remove
  102. reflected.way@gmail.com Admin
  103. xedge@yopmail.com Member
  104. xopera@yopmail.com Member
  105. ```
  106. then i opened one of those accounts to fetch the `guid` parameter to use against other accounts to force them to join my team , can you try to log in with one or more of these accounts to try the poc it will work with all accounts
  107.  
  108. ```
  109. xchrome@yopmail.com:y1a2s3s4
  110. xfirefox@yopmail.com:y1a2s3s4
  111. face@yopmail.com:y1a2s3s4
  112. ```
  113. - Just visit this url after loggin-in , and you will see the account is forced to join the team
  114. `https://www.hellosign.com/account/confirmTeamInvite/guid/8105d4ddb7aeb347c9936385b4b858abb355d0b2/does_accept/1`
  115.  
  116.  
  117.  
  118.  
  119.  
  120. ---
  121.  
  122. 2017-02-14 03:50:33 +0000: @raaghavs (bug needs more info)
  123. @exception - Does this happen only if you invite the victim and then get the victim to click on this confirmTeamInvite URL?
  124.  
  125. ---
  126.  
  127. 2017-02-16 11:22:22 +0000: @exception (bug new)
  128. The victim must visit the url (GET or POST) in order to exploit.
  129.  
  130. So If a victim is logged in and visited any webiste containing the following code
  131. ```
  132. <img src='https://www.hellosign.com/account/confirmTeamInvite/guid/8105d4ddb7aeb347c9936385b4b858abb355d0b2/does_accept/1' />
  133. ```
  134. The invitation will be accepted.
  135. It will work in all these cases
  136. - Visiting the url directly through the browser
  137. - Visit a web page contains the link as image , form , script or any other method that forces the browser to issue a request to the vulnerable url.
  138.  
  139. Conditions to exploit
  140. - The victim must be logged in
  141. - The guid parameter must be grabbed from another victim account ( attacker's 2nd account)
  142.  
  143. ---
  144.  
  145. 2017-06-20 16:02:10 +0000: @raaghavs (bug needs more info)
  146. @exception Are you still able to see the issue? We have not been able to successfully reproduce the issue.
Add Comment
Please, Sign In to add comment