Quindi questa parte di codice è vulnerabile a formattare stringa vuln (credo) nella funzione printf()
. Legge un file in /tmp/file
, quindi ho provato a scrivere diversi modificatori / stringhe in quel file e vedere cosa succede ma non ho trovato nulla di interessante. Quando scrivo poche righe contenenti %x %x %x %x %s
, vedo che a volte l'interruzione di riga non è presente e ottengo una riga che contiene effettivamente 2 righe.
Posso anche inserire un
all'inizio della riga, ad esempio se faccio b
AAAc
e la stessa cosa per %code% e %code% e poi copia / incolla questo qualche istante il risultato è:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
int main(int arc, char **argv)
{
int fd;
fd = open("/tmp/file",O_RDONLY);
if (fd < 0)
{
printf("Cannot open file\n");
exit(1);
}
int nb_lus;
char line[20];
while ((nb_lus = read(fd,line,20)) > 0)
{
line[nb_lus-1] = '#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
int main(int arc, char **argv)
{
int fd;
fd = open("/tmp/file",O_RDONLY);
if (fd < 0)
{
printf("Cannot open file\n");
exit(1);
}
int nb_lus;
char line[20];
while ((nb_lus = read(fd,line,20)) > 0)
{
line[nb_lus-1] = '%pre%';
printf("%s",line);
}
close(fd);
system("/bin/rm /tmp/file");
return 0;
}
AAAA
%pre% bbbbb
%pre%cccccc%pre% AAAA
';
printf("%s",line);
}
close(fd);
system("/bin/rm /tmp/file");
return 0;
}
AAAA
%pre% bbbbb
%pre%cccccc%pre% AAAA
L'obiettivo di sfruttamento è leggere alcuni file in una directory protetta ma non ho idea di come lo farei usando questa vulnerabilità. Qualsiasi suggerimento è benvenuto, grazie.
%pre%