Raised This Month: $ Target: $400
 0% 

A new ban evasion hack?


Post New Thread Reply   
 
Thread Tools Display Modes
Chdata
Veteran Member
Join Date: Aug 2012
Location: Computer Chair, Illinois
Old 01-15-2017 , 14:57   Re: A new ban evasion hack?
Reply With Quote #11

That is spooky.
__________________
Chdata is offline
Chdata
Veteran Member
Join Date: Aug 2012
Location: Computer Chair, Illinois
Old 01-21-2017 , 01:29   Re: A new ban evasion hack?
Reply With Quote #12

Turns out it's naydef's Admin Stealth plugin that spoofs status.
__________________
Chdata is offline
404UserNotFound
BANNED
Join Date: Dec 2011
Old 01-22-2017 , 19:46   Re: A new ban evasion hack?
Reply With Quote #13

Quote:
Originally Posted by asherkin View Post
The players steamid wasn't validated (probably because your server wasn't connected to Steam - standard Tuesday maintenance window for Valve); unlike sm_ban, SourceBans requires validated steamids (because it is ancient and unmaintained, and thus has not been updated since validation became the default); your sm_id plugin doesn't check the fucking return value of GetClientAuthId and blindly uses the buffer (which is set to STEAMID_STOP_IGNORING_RETVALS because of the number of people like you who think their plugins are too good for error checking, and were reusing the same buffer for multiple calls without clearing it or checking the return value).
This answered the question of why the error happens for me in my plugin that changes the on-connect message where I was getting STOP_IGNORING_RETVALS.

Now I know I need to check the buffer first before using it. What's the appropriate thing to check for in my if statement after I get the client's auth id?

EDIT:

Quote:
Originally Posted by Visual77 View Post
Code:
decl String:steamID[64]; 

if (GetClientAuthId(client, AuthId_Steam2, steamID, sizeof(steamID)))
{ 
PrintToChat(client, "Idiot %N steamID: %s", client, steamID);
}
How am I such a doof, and how did I not realize I should be doing this. I always try to make sure I error check and here I am just now realizing how often I've used GetClientAuthId without any error checking o.o

Last edited by 404UserNotFound; 01-22-2017 at 19:50.
404UserNotFound is offline
friagram
Veteran Member
Join Date: Sep 2012
Location: Silicon Valley
Old 01-24-2017 , 05:38   Re: A new ban evasion hack?
Reply With Quote #14

Quote:
Originally Posted by Visual77 View Post
Code:
decl String:steamID[64]; 

if (GetClientAuthId(client, AuthId_Steam2, steamID, sizeof(steamID))) { 
PrintToChat(client, "Idiot %N steamID: %s", client, steamID);
}
I guess this is only needed in SM 1.8-1.9 and for CSGO?

There's also "SteamAuthstringValidation" "no" that you can try in configs/core.cfg
Common that people do not check the return. See this so often in admin flag and shop plugins and the like using mysql. Random guy will join and use the existing buffered ID, or insert some garbage into the table.

Hilarious when random guy gets admin access or trades away whateversorrysaps credits.

As for not understanding, RTFM its always been there clear as day:
PHP Code:
/**
 * Retrieves a client's authentication string (SteamID).
 *
 * @param client        Player index.
 * @param auth            Buffer to store the client's auth string.
 * @param maxlen        Maximum length of string buffer (includes NULL terminator).
 * @param validate        Check backend validation status.
 *                 DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
 *                    You WILL KNOW if you need to use this, MOST WILL NOT.
 * @return                True on success, false otherwise.
 * @error                If the client is not connected or the index is invalid.
 */
native bool:GetClientAuthString(clientString:auth[], maxlenbool:validate=true);

/**
 * Retrieves a client's authentication string (SteamID).
 *
 * @param client        Player index.
 * @param authType        Auth id type and format to use.
 * @param auth            Buffer to store the client's auth id.
 * @param maxlen        Maximum length of string buffer (includes NULL terminator).
 * @param validate        Check backend validation status.
 *                 DO NOT PASS FALSE UNLESS YOU UNDERSTAND THE CONSEQUENCES,
 *                    You WILL KNOW if you need to use this, MOST WILL NOT.
 * @return                True on success, false otherwise.
 * @error                If the client is not connected or the index is invalid.
 */
native bool:GetClientAuthId(clientAuthIdType:authTypeString:auth[], maxlenbool:validate=true); 
__________________
Profile - Plugins
Add me on steam if you are seeking sp/map/model commissions.

Last edited by friagram; 01-24-2017 at 05:44.
friagram is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 00:45.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode