☰ Menu

Scene.hu

Magyar demoscene portál – grafikusok, zenészek, programozók alkotói közössége

Home Forums A Demokészítés művészete Programozás [szavazás] Linuxos demó kódolás Reply To: [szavazás] Linuxos demó kódolás

#5152
avatarpontscho
Member
Geri wrote
pontscho: Hát jó, ha tudsz mutatni egy bugot abban a kódban…

Amugy parancsolj, kapasbol tobbet is tudok mutatni, mar az elso par sorban:char gpidd[1024];sprintf(gpidd, “readlink /proc/%d/exe > /tmp/%d_PID.txt”, pidem,pidem);Eloszor is, sosem hasznalunk sprintf()-et, hanem snprintf()-et, mivel ez esetben a buffer overflow esete teoretikus, a rossz megszokas maskor hibat okoz.Masodszor, feltetelezed, hogy a readlink parancs letezik az adott rendszeren es elerheto a PATH-ban, pedig pont a linux az, ahol ilyet nem lehet tenni.system(gpidd);Harmadszor egy glibc-ben levo readlink() fuggveny meghivasat nem a system() parancsban osszefosott sec hole-os shell scripttel helyettesitjuk, hanem doksit olvasunk, es megkeressuk hogyan kell normalisan megcsinalni. Ugyanis a system() fuggveny meghivasa ugy kezdi, hogy elforkol a program torzsbol egy shell-t, ami linuxon jellemzoen a bash lesz, aztan atadja neki a parameterkent atadott shell scriptet. Ez gyonyoru lehetoseget ad arra – mindamellett, hogy minden, csak nem hatekony – mivel nem abszolut utvonallal hivtad meg a kerdeses fuggvenyt, hogy akar tetszoleges szoftvert futtasson a “kodod”. Bar szerinted ez a problema sem letezik. :)Negyedszer, bar szinten teoretikus problema, mert a “szoftvered” nem biztonsag kritikus, a generalt file nev kitalalhato, es modosithato feldolgozas elott, amivel akar buffer overflow-t is lehet okozni, vegrehajthato kodot lehet injektalni a szarodba. Szerinted ilyen problema sem letezik. :)Lattam mar gepet, amiket ilyen “nemletezo” problemakkal tortek fel. Ezekert az “apro” hibakert minden jobb helyrol kibasszak az embert.Nos, off, tema reszemrol lezarva.

Ugrás a lap tetejére Ugrás a lap aljára