Sammy Servers Text screen backdoor (Info)

I would like to post today because a lot of players do not know. The commonly popular Sammy’s Servers Text screen tool “http://steamcommunity.com/sharedfiles/filedetails/?id=109643223” has a back door within it’s code. A lot of people who run Garrysmod servers do not realized this and a lot of players have not realized this for a very long time. The coders of this addon are nice people but they decided to put a back door in it for giggles. One of the coders of this addon is actually one of the creator of the popular Seth hack. I was experimenting awhile back with this addon and I found it out because you can make a player a Permanent Text screen and it removes their powers. This may have been a mistake. They run a script in console when most servers have lua scripts enabled. I would advise that you remove this addon from your server until further notice. I know the creators of this addon and contacted one of the people who did not add this backdoor and he will remove it and re-post the addon. One of the coders of this hack was a guy named “Cherry” he was actually banned by Garry himself. Thanks!

Here is the function for people who wan’t to know more.


 if CLIENT then

    properties.Add("addPermaScreen",{
        MenuLabel = "Make perma textscreen",
        Order = 2001,
        MenuIcon = "icon16/transmit.png",

        Filter = function(self, ent, ply)
            if not IsValid(ent) or not ent:GetClass() == "sammyservers_textscreen" then return false end    
            if ent:GetNWBool("isPermaTextScreen") == true then return false end
            return ply:IsAdmin()            
        end,

        Action = function(self, ent)
            if not IsValid(ent) then return false end
            RunConsoleCommand("SS_TextScreen", "add", ent:EntIndex())
        end
    })

EDIT:

We also just realized that the popular Car dealer mod made by Rocketmania (http://coderhire.com/browse/script/423/3d-car-dealer-v30x) just recently had an exploit to that was maybe just patched, it does what the text screen tool does exactly the same and I feel as if it has the same script. It works as if you sell a car but you sell a player so it removes every thing they have even ranks, like the text screen tool does.

EDIT:
This is an example we quickly made. https://www.youtube.com/watch?v=eQvmjrzLafs&feature=youtu.be

Here is a dumb down explanation of the textscreen. For player A to get admin this could tie into another addon like the car dealer.

If you have admin power/ability to run command serverside then you can make the players entity a text screen, and then remove them as a textscreen.

Player A makes himself admin
Player A presses C and makes player B a textscreen
Player A Removes player B as textscreen
Player B Doesnt exist as an entity anymore (His money is deleted, his rank is deleted, everything of him is deleted, he is like a reset player)

I swear this has been known for months, how has it not been removed?

Doesn’t it also advertise some Minecraft host that its uploaders run (or try to)?

I think it is passenger mod or tdm cars.

Yup.



hook.Add("Initialize", "NodeCraftAdvert", function()
		timer.Simple(15, function()
			if GetConVarNumber('ss_disable_ads') == 1 then return end
			ServerLog("

Looking for a Minecraft server host? Visit NodeCraft.com today!
Use promotional code GMOD for 10% off for life!

")
		end)		
	end)


So you didn’t notice the even more obvious one?

ss_texta str -> RunString(str)

That was in a reupload of the addon.

I’m one of the creators of this addon. Whoops! That’s a pretty large bug, and my apologies for any inconvenience or damage this may have caused.

That is simply not true. This was an oversight, and is the result of
[lua]if not IsValid(ent) or not ent:GetClass() == “sammyservers_textscreen” then return false end[/lua]

not evaluating correctly.

Replacing the two instances of this line with:
[lua]if not IsValid(ent) or ent:GetClass() ~= “sammyservers_textscreen” then return false end[/lua]

(as well a minor patch to the server-side command) solves the issue completely, and a patch has already been pushed to the workshop. Thanks for bringing this bug to light!

Sorry for such the quick judgement. We were working quickly to figure out the issue. I hope this did not cause harm to you. Thank you for helping us resolve it if you are Dellkan.

You would know since I busted you exploiting a server with it.

This is kinda scary. I mean, pretty much every single server uses text screens.

[del]So, anyone care to explain, where is the “backdoor” in that code in OP?

I know it was “fixed”, but I am just curious.[/del]

Apparently people do not know the definition of the word “backdoor”