- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- GoodSpeed: Samsung Galaxy S24 FE - tapasztalatok
- Argos: PH!arckép
- weiss: Pant* rant
- sziku69: Szólánc.
- Ndruu: Segíts kereshetővé tenni a PH-s arcképeket!
- borg25: Kórházi beszámoló
- MasterDeeJay: Natív 3Dfx Glide Windows11 alatt Voodoo1 és Voodoo2-vel.
Aktív témák
-
Gregorius
őstag
egy olyan nagy paraméterrel, amitől az túlcsordul
Itt egy alapvető tévedésedet eloszlatnám: nem a stack csordul túl, hanem a buffer.
A stack az egy olyan képződmény, ami nagyobb memóriacímtől a kisebb felé nő. Ne kérdezd, miért van ez így, így van és kész, ez ''hagyomány''. A probléma az, hogy a buffereket (tipikusan egy char [] vagy hasonló) a különböző függvények (pl. strcpy) éppen másik irányba (kisebb címtől nagyobb felé) írják, tehát ha a buffernek lefoglalt memóriaterületen túllóg a beírt adat, akkor a stackre utoljára rárakott adatokat, vezérlő információkat fogja felülírni, tehát szó sincs semmiféle átfordulásról, ez nem olyan túlcsordulás. Inkább túlírásnak (overrun) lehetne hívni.
Azért problémás az ügy, mert ugyan lehet, hogy nagy kárt nem tud okozni a hiba bizonyos esetekben, de DoS-szerű támadást mindenképpen (egyszerűen hibával elszáll a program/service, ld. MSBlast), azon túl potenciálisan bármilyen kárt lehet vele okozni (akár egy mass-mailer vagy egy proggi, ami ellopja a bizalmas adataidat nem elég nagy kár?). Sokkal egyszerűbb egy ilyen hibát kijavítani (miután kiderült, hogy ott van), mint azon filózni, hogy ez mennyire lehet veszélyes.
[Szerkesztve] -
kisfurko
senior tag
Ez az idegen kód végrehajtásosdi inkább a system process-ekre veszélyes.
Normál esetben megfelelően reagál mondjuk egy Apache. Ekkor simán csak a neked való oldalakat tudod lekérdezni. Ha egy lekéréssel be tudod juttatni a saját kódodat, akkor olyan oldalt, Apache rendszerfile-t is megkaphatsz, amit nem tudnál normálisan.
E? -
rog
addikt
ok megfejtettem mit írtál. :)
gyak ugyanaz mnt az első pl a és b processel.
B meghívja A.Y-t. (ismerve a stack méretét, egy olyan nagy paraméterrel, amitől az túlcsordul és a paraméter vége, benne a gonoszságra mutató címmel rákerül a megfelelő helyre).
ezáltal a A.Y-ról a vezérlés nem a hívóra kerül (ez lehet B.X, A.X, vagy C.X is) hanem a stack-en levő gonoszságra.
mit ér el vele?
a G-kód a hívó jogaival fog rendelkezni (A.X esetén A jogaival C.X esetén C jogaival, B.xnél B jogaival, az utolsó mondjuk szívás.)
ha A-ból vagy c-ből hívják meg a hibás Y függvényt akkor hogy kerül a stackre a Goni kód, meg csorduláshoz kellő hosszú paraméter? -
WN31RD
addikt
''hogy veszi át a támadó a ''B'' process felett az irányítást?''
B processzben:
X függvény meghívja Y függvényt
Y függvény hibás, és egy támadó Y függvény hibáját kihasználva beleírja a verembe a gonosz kódot, plusz a gonosz kódra mutató visszatérési értéket
Y függvény befejezi a működését, és visszatérne X-hez... de nem X-hez tér vissza, hanem a gonosz kódhoz kerül a vezérlés, mert a visszatérési érték át lett írva
(Na, cracker tanfolyam ;] átmenetileg berekesztve... elhúztam.) -
faster
nagyúr
Szerintem itt nem processzek közötti oda-vissza ugrálásról van szó, hanem egy processzen belüli függvényhívás-visszatérésről. A függvény a visszatérési értéket a stacken tárolja, ami felülíródik, és a saját kódra mutat. Csak az nem világos, hogy ez a kód is a stacken van-e (bár gondolom, csak ott, hiszen a puffer túlcsordulás csak a stacken képes írása), és vajon a kód írója honnan tudja, hogy milyen címre kerül az ő programkódja.
-
WN31RD
addikt
Na, értem végre, hogy mit nem értesz. :D
Nincsen szó processzek közötti váltásról.
Az A processz elindítja B processzt adott jogokkal. Innentől kezdve elfelejthetjük az A processzt.
B processznek a stackjét elbassza egy támadó, ezáltal átveszi B processz felett az irányítást, és a támadó kód B processz részeként fut, természetesen a B processz jogaival.
B processz (illetve a benne levő kód) garázdálkodik...
Természetesen a B processz (illetve a benne levő kód), elindíthat egy C processzt, amibe bemásolhatja a gonosz kódot, de ez csak a garázdálkodás része... azaz részletkérdés.
Ennyi.
Világos?
[Szerkesztve] -
WN31RD
addikt
Védelmi szinteken nem lehet ezzel a módszerrel átmenni, de a program jogait megkapja a gonosz kód is, tehát pl. egy vírus terjedhet a programot futtató felhasználónak a jogaival, ha pedig egy privilegizált (pl. root-ként futó) szerverprocessz az áldozat, akkor ugye nem kell tovább magyarázni...
-
WN31RD
addikt
''szóval az ip-t nem lehet olyan címre küldeni, ami a stack-en van?''
Pontosan. (De nem csak a veremről van szó, hanem az adatszegmensről is.)
''de mivan ha a gonoszság nem a veremben van? vagy olyan nem lehet?''
Elvileg olyannak nem kellene lenni, hogy kifejezetten gonosz programrész máshol legyen, de előfordulhat az, hogy egy teljesen normális rutin gonosz paraméterekkel meghívva gonosz dolgot csinál. A verem átírásával (a verembe írást semmi nem akadályozza meg) ilyen módon továbbra is támadható marad a gép.
''az ellen nem véd'' :D
''hogy működik egészen pontosan ez a túlcsordításos történet?''
Pl. így működhet:
A memóriában (veremben) a következők vannak:
... valamilyen puffer ... visszatérési cím ...
A program beolvas a pufferbe, de hibás a beolvasó kód, és nem ellenőrzi a beolvasandó adat méretét, és ha túl sokat kap, akkor felülírja a puffer utáni területet is, beleértve a visszatérési címet.
A támadó felülírja a visszatérési címet pl. a puffer bizonyos helyére mutató pointerrel, oda pedig berakja a kódot, és kész. -
kisfurko
senior tag
Nem olvastam még el, de én úgy tudom elképzelni, hogy csak az futhat (lap), aminek be van állítva az execute flag-je. A rendszer pedig csak a kód lapjainak állítja be. A kód lapjait meg nem lehet módosítani, mert read-only. Tehát nincs gonosz kód. Vagy valamit kifelejtettem?
Aktív témák
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Spórolós topik
- EAFC 25
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Úgy tér vissza a Commodore 64, ahogy titkon mindenki várja
- AliExpress tapasztalatok
- Veszprém és környéke adok-veszek-beszélgetek
- Hegesztés topic
- Kínai és egyéb olcsó órák topikja
- További aktív témák...
- BESZÁMÍTÁS! ÚJ AMD Ryzen 5600X 5700X 5800X 5900X processzor 3 év garancia 27% áfa termékbeszámítás
- BESZÁMÍTÁS! ÚJ AMD Ryzen 8500G / 8600G AMD Ryzen 7 8700G / 7800X3D processzor 3 év garancia 27% áfa
- ÚJ AMD Ryzen 5 5600X BOX AM4 6/12 magos CPU - bontatlan
- Eladó ÚJ Intel Core i3 10105F bontatlan dobozos processzor 3 év garancia 27% áfa
- AMD Ryzen R5 5600G / 6 mag / 12 szál / IGP-s /Beszámítás OK!
- Xiaomi Redmi Note 12 Pro 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA! Épített KomPhone i9 14900KF 64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Az ASUS TUF Gaming B550-Plus csak rád vár! Kamatmentes rèszletre is!!
- RAKTÁRSÖPRÉS!!! - Videókártyák, Monitorok, Notebookok, Stb. - Szaküzletből! Számlával!
- BESZÁMÍTÁS! Asus B550M R5 5600X 32GB DDR4 512GB SSD RTX 3060 12GB THERMALTAKE Commander G41 700W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest