isInHell = true
isInHell = truehttps://fedia.io/media/b9/ae/b9ae619e723e9bf32d053366e4cf0a7441a802de4e9e29abafa2a9f7947669e7.webp
isInHell = true
isInHell = truehttps://fedia.io/media/b9/ae/b9ae619e723e9bf32d053366e4cf0a7441a802de4e9e29abafa2a9f7947669e7.webp
True in python.
It’s you can modify the settings file you sure as hell can put the malware anywhere you want
True. But a code settings file still carries it’s own special risk, as an executable file, in a predictable place, that gets run regularly.
An executable settings file is particularly nice for the attacker, as it’s a great place to ensure that any injected code gets executed without much effort.
In particular, if an attacker can force a reboot, they know the settings file will get read reasonably early during the start-up process.
So a settings file that’s written in code can be useful for an attacker who can write to the disk (like through a poorly secured upload prompt), but doesn’t have full shell access yet.
They will typically upload a reverse shell, and use a line added to settings to ensure the reverse shell gets executed and starts listening for connections.
Given the warning about capitalization, the best possible case is that they’re using ast.literal_eval() rather than throwing untrusted input into eval().
Err, I guess they might be comparing strings to ‘True’ and are choosing to be really strict about capitalization for some reason.
Depends on how it’s set up. If the setting is going into the env it’s a string, so I’d expect some sort of
if os.getenv("this_variable", "false").lower() == "true": # or maybe "in true, yes, on, 1" if you want to be weird like yaml this_variable = True else: this_variable = FalseExcept maybe a little more elegant and not typed on my phone.
But if the instructions are telling the user to edit the settings directly, like where I wrote this_variable=True, they’d need to case it correctly there.
I refer you to #7 on Bruce Tognazzini’s evergreen top ten list of design bugs.
exec(“stuff”) instead…
In this instance, I think there was some suggestion to write code in mostly lower case, including all user variables, or at least inCamelCaseLikeThis with a leading lower case letter, and so to make True and False stand out, they've got to be capitalised.
I mean. They could have been TRUE and FALSE. Would that have been preferable? Or how about a slightly more Pythonic style: __true__ and __false__
I like your idea, but hear me out:
A Python file for configuration is the best way to guarantee that any friendly code I write to help the user with config usually won’t execute. And I hate my users.
exec(“stuff”) or True…
Have you tried to use AI for <thing>? It’s pretty shit.
protein folding
We’re at the point where, due to how tech services work, I think a lot of people think AI === LLM
How about this:
Humans (or humans assisted by AI) write documentation
Users (devs includes) can either choose to read the manual the old fashioned way or utilize it like a sort of swagger api documentation to give
1
Backend: 1
Frontend: ¹
2 happened
isInHell = ‘(x + 1 > x)’
We don’t know what value X has. If it isn’t initialised it could have any value including the maximum. Then it would overflow.
But let’s be honest, that is unlikely.