
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
Archivio: Giugno 2004 ml@sikurezza.org Soggetto: Re: [ml] toth Mittente: Marco.maccarini Data: Mon, 28 Jun 2004 16:42:19 +0200 (CEST)
Preambolo per koba: dato che e' l'ultimo post che intendo fare su questo
thread e dato che non sono iscritto a devel@ ti prego di far passare
quest'ultima mia mail, grazie :)
Intanto volevo chiarire che la patch era per far funzionare quell'UNICO
caso, non voleva essere una patch giusta in generale o da applicare
definitivamente. Correggere i bug in modo definitivo e' compito tuo, non
mio.
Detto questo, io non sapro' cos'e' un TOCTOU, ma nemmeno il tuo tool lo
sa a quanto pare, vediamo un po' di esempi:
semplici chdir bypassano toth:
int main()
{
if (!access("filp", W_OK)) {
chdir("../");
chdir("toth");
fopen("filp", "r+");
}
return 0;
}
rinominare il file e usare stat bypassa toth:
int main()
{
struct stat stats;
stat("filp", &stats);
rename("filp", "filp1");
if (stats.st_uid == getuid())
fopen("filp1", "r+");
return 0;
}
per non parlare dei link:
(ho provato solo con quelli simbolici, gli hard non mi ci metto nemmeno :))
int main()
{
if (!access("READMElink", R_OK))
fopen("README", "r+");
return 0;
}
path assoluti e relativi bypassano toth:
if (!access("/home/user/toth/README", R_OK))
fopen("README", "r+");
addirittura basta un ./ davanti per mandare in panico toth:
if (!access("./README", R_OK))
fopen("README", "r+");
ah, sapete i pthread non piacciono a toth:
void prova() {
if(!access("README", R_OK))
open("README", "r+");
}
int main()
{
pthread_t pt;
pthread_create(&pt, NULL, (void *)prova, NULL);
pthread_join(pt, NULL);
return 0;
}
successivamente volevo provare con delle fork() ma dopo mi sono
chiesto: "perche' perdere tempo se so gia' il risultato?"...
Allora ho lasciato perdere...
E' usanza inoltre lavorare con gli handler, quando si fanno queste cose,
ma siccome ho visto che a te piacciono le cose alternative tipo
fprintf(stdout, ...); forse forse capisco perche' lavori con i path.
detto questo saluto con affetto snagg :)
ciao
--
Email.it, the professional e-mail, gratis per te: http://www.email.it/f
Sponsor:
Smista, incollona e conta le monete Euro.
Indispensabile per il business il nuovo Contamonete Elettronico
Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=2414&d=20040628
[ Home | Liste | F.A.Q. |
Risorse | Cerca... ]
www.sikurezza.org - Italian Security Mailing List
(c) 1999-2005