wget-tel letámadtam deny.php-t ("query_string"-gel is)
de akkor is csak: The requested... lett a letöltött file tartalma.
robots.txt-nek a szokásos 404-re átirányító van berakva,
(össz könyvtárba ugyanilyen index.php)
(szerk.
az összes oldalon tiltva a jobb-klikk,
a státuszsor kíméletlenül üresre írva onMouseOver-kor is.)
De attól tartok, hogy mégiscsak elnéztem valamit,
és simán levadászható vagyok.
deny.php:
-
<?php $getinkocsord = 'akarminevugetvaltozo'; if (isset($_GET[$getinkocsord])) { ?><script type="text/javascript"> window.location.href = "<?php echo "http://".$_SERVER['HTTP_HOST']."/dir/target.php"; ?>";</script><?php exit(); } else { $bye = "The requested URL's not found this server."; if (!($_SERVER['HTTP_REFERER'] == "http://www.domainnev.hu/index.php")) { die ($bye); } if (! ($_SERVER['QUERY_STRING'] == "ezittaquerystring") ) { die($bye);} ?><script type="text/javascript"> window.location.href = window.location + "=0&".$getinkocsord."=0"; </script><?php } ?>
target.php:
-
<?php ?><body oncontextmenu="return false"><?php echo "Hello, rootKitty!"; ?>
- bitvadasz blogja
- A hozzászóláshoz be kell jelentkezni
- 1192 megtekintés
Hozzászólások
Bar nem egeszen ertem, hogy mit akarsz csinalni, de abban biztos vagyok, hogy ez nem jo.
Amugy minek letiltani a context menut?
A refererrel meg nem mesz sokra, azt barmilyen HTTP kliensben allitani lehet. Sot, barmilyen HTTP headert allitani lehet.
- A hozzászóláshoz be kell jelentkezni
1. próbáld ki, működik target.php utáni mélységekben is.
2. "oldal forrása", "oldal adatai"
3. HTTP_REFERER - tudom :(
"Mivel ez is a felhasználótól jön, nem érdemes nagyon megbízni benne, még akár egy egyszerű telnet klienssel, vagy valamilyen nyílt forrású böngésző átírásával is könnyen lehet hamisítani. Ettől függetlenül érdemes lehet egy plusz védelmi vonalként használni, megvizsgálni, hogy az űrlapokon keresztül beérkező adatok tényleg a mi űrlapunk kitöltésével kerültek-e hozzánk."
Nálam marad a böngésző átírás, mert telnet tiltva.
Nem dicsekedni írtam ide, hanem szétcincálásra :)
- A hozzászóláshoz be kell jelentkezni
2.) jo, de erre tamaszkodva nem ersz el semmit, csak bosszantod a felhasznaloidat. Kismillio modja van, hogy ez ne mukodjon egy oldalon, vagy ne erjen semmit (gyorsbillentyu, firebug/inspector, noscript stb).
3.) itt telnet kliens alatt nem tavoli hozzaferest ertenek, hanem azt, hogy ha egy telnet klienssel belepsz a 80-as portra (tehat nyitsz egy socket-et), es beirod a nyers HTTP kerest, akkor ugyanott vagy (a szerver szempontjabol), mintha bongeszovel nezed meg. Olvass utana egy kicsit a HTTP protokollnak es ugy altalaban a halozat mukodesenek.
Amugy ha urlap vedelmet akarsz (gondolom CSRF ellen akarsz vedekezni), akkor valami token rendszerrel lenne erdemes foglalkozni (minden form-nak van egy ID-je, amit megtartasz valameddig, es csak olyan formot fogadsz el, aminel jo az ID).
- A hozzászóláshoz be kell jelentkezni
2. a felhasználó csak lássa azt, amit látnia kell.
- A hozzászóláshoz be kell jelentkezni
Jo, de amit atkuldesz a csovon, az atment, afelett nincs igazi kontrollod.
- A hozzászóláshoz be kell jelentkezni
"Nálam marad a böngésző átírás, mert telnet tiltva."
Hogy ellenőrzöd, hogy rendes webböngészővel, telnettel vagy wget-tel használják?
"simán levadászható vagyok."
Persze. Elég megcsinálni ugyanazt, mint a böngésző:
wget http://www.domainnev.hu/deny.php?ezittaquerystring --referer=http://www.domainnev.hu/index.php
1. Mit akarsz?
2. Ezek semmit se érnek. Amit a webböngésző tud, azt a kliens felhasználó is megtudhatja.
- A hozzászóláshoz be kell jelentkezni
wget miatt átírtam:
deny.php:
-
<?php $sessionkocsord = 'akarminevugetvaltozo'; if ( isset($_SESION['sessionkocsord']) ) { if ( $_SESION['sessionkocsord'] == $sessionkocsord ) { unset($_SESION['sessionkocsord']); } ?><script type="text/javascript"> window.location.href = "<?php echo "http://".$_SERVER['HTTP_HOST']."/dir/target.php"; ?>";</script> <?php exit(); } else { $bye = "The requested URL's not found this server."; if (!($_SERVER['HTTP_REFERER'] == "http://www.domainnev.hu/index.php")) { die ($bye); } if (! ($_SERVER['QUERY_STRING'] == "ezittaquerystring") ) { die($bye);} $_SESSION['sessionkocsord'] = $sessionkocsord; ?> <script type="text/javascript"> window.location.href = window.location; </script> <?php } ?>
most, ha wget-tel (--referer=...) letámadom "deny.php?ezittaquerystring"-et,
akkor is csak ezt kapom forrásnak:
<script type="text/javascript">
window.location.href = window.location;
</script>
Remélem, innen erre nincs tovább.
A form űrlapokat ellenőrzöm, egy aposztróf megengedett,
O'Brien16 Pi-Stuka még átmegy, de semmi zárójel, kulcsszó stb.
ha valakit DROP-nak vagy ilyennek hívnak, az menjen gyalog, ne itt a dróton.
Már csak azt kéne tudnom, hogy ezen a héten mi a neve a
window.status
-nak...
mert ebből
function kiir() {
window.status="Nincs itt semmi!"; alert('ugorgyunk')
}
</script>
sajnos
onMouseOver="setTimeout(kiir(),200);"
esetén csak az alert müxik.
- A hozzászóláshoz be kell jelentkezni
Természetesen dehogynem, ha wget-hez ragaszkodunk (bár egyszerűbb Firebug és hasonló webböngésző-kiterjesztésekkel):
(szerk.:)
wget http://www.domainnev.hu/deny.php?ezittaquerystring --referer=http://www.domainnev.hu/index.php --save-cookies cookies.txt --keep-session-cookies
wget http://www.domainnev.hu/deny.php?ezittaquerystring --referer=http://www.domainnev.hu/index.php --load-cookies cookies.txt
Hidd el, ilyenek nem érnek semmit, olyannal szemben főleg nem, aki egy SQL injction vagy hasonló támadást meg tudnak csinálni. Azt feltételezed, hogy ha valamit te az általad ismert kevés eszközzel nem lehet megcsinálni, akkor nem lehet megcsinálni. Ne vacakolj, ellenőrizd az űrlapadatokat szerverodalon.
- A hozzászóláshoz be kell jelentkezni
Halom tutorialt találsz arra is, hogy hogy kell védekezni sql injection ellen. Nem úgy, ahogy te akarsz: én nem vagyok szakember, és nem tanultam informatikát (hozzád hasonlóan, remélem), de azonnal tudtam, hogy mit kell csinálni a zseniáis védelmeddel.
- A hozzászóláshoz be kell jelentkezni
Hát ezért írtam ide, különben elégedetten csücsülnék a hervadt babéromon.
- A hozzászóláshoz be kell jelentkezni
1.) ez a refresh-es trukk a wget-et megneheziti, de ez meg mindig csak security by obscurity, tehat a sutik hamisitasaval (megnezem bongeszoben az oldalt, majd onnan a sutiket hasznalva curl-lel postolok preparalt post adatot) meg mindig nem tudsz mit kezdeni igy, csak hamis biztonsagerzeted lesz
2.) form urlapok: minek ilyen korlatozasokat tenni? nem egyszerubb:
- numerikus adat eseten kikenyszeriteni a tipust
- stringnel hasznalni a mysql_real_escape_string()/pg_escape_string()/stb fuggvenyeket (amik pont erre valoak?)
- egyeb adatnal (binaris adat) specialis szures
modszerrel eljarni?
3.) azt tudod, hogy a `setTimeout(kiir(), 200)` kifejezes eloszor lefuttatja a kiir() fuggvenyt, majd a visszateresi erteket adja parameterul a setTimeout()-nak; amit te szeretnel, az a `setTimeout(kiir, 200)`
- A hozzászóláshoz be kell jelentkezni
wget-nek is vannak cookie opciói.
- A hozzászóláshoz be kell jelentkezni
nem nagyon ismerem a wget-et, de ezek szerint akkor egyszerubb, mint gondoltam :)
- A hozzászóláshoz be kell jelentkezni
1.) süti az nincs, ha lesz, akkor sem lesz egyszerű bármit kihámozni belőle.
- a session-ben tárolt cuccoknak is $kisorsolt nevük van az adott session-re, éppúgy mint post változóknak. Az akarmi.php?semmire=nem&használom=és olvashatatlan az aktuális session-re érvényes randomnevü get értékekkel van ellátva, hátha nagyon ráér valaki.
2.) az van amit mondasz, csak én nem bírtam rendesen megmondani.
- bináris adat nem töltődik fel.
3.) lehet, hogy amikor befejezem a(z akármilyen) ténykedésemet, utána felülíródik a státuszsor a href linkkel?
- A hozzászóláshoz be kell jelentkezni
1.) szerinted a PHP SESSION kezelese hogyan mukodik, ha a PHP egy stateless protokoll?
3.) lehet, statuszsort eletemben nem akartam piszkalni
- A hozzászóláshoz be kell jelentkezni
1.) ha valamit nem tudok. akkor így hiába kérdezel rá, mert csak azt látom amit írsz - amire gondolsz azt nem.
- A hozzászóláshoz be kell jelentkezni
megfejtes: a PHP lerak egy session cookie-t, amiben van egy hash; ha ezt visszakuldod neki, akkor ugyanabban a sessionban vagy. Ez azert van igy, mert a HTTP protokoll nem tud allapotot tarolni, csak egy sima request-response protokoll.
- A hozzászóláshoz be kell jelentkezni
Nálam nem nagyon szeded ki, hogy a session-ben minek mi lehet a 'neve' és a 'value' vajon mi a frász és milyen szabályok szerint - semmi "human readable".
CURL: Regisztrált felhasználók nincsenek.
- A hozzászóláshoz be kell jelentkezni
Nem kell tudnia, elküldi azt, amit te küldtél el neki az első http kéréskor, ugyanúgy, mint a webböngésző.
Miután még mindig nem jöttél rá, hogy az elv a hibás, fizess meg valakit, akinek van lövése a HTTP-ről meg egy kevés a biztonságról, vagy ne számíts arra, hogy biztonságos lesz, amit csinálsz.
- A hozzászóláshoz be kell jelentkezni
Ha ennyire nem értek hozzá,
akkor honnan tudom majd, hogy a vásárolt "agua anti-intruder spray" hatásos?
- A hozzászóláshoz be kell jelentkezni
22-es csapdája
- A hozzászóláshoz be kell jelentkezni
Statusbar babrálásról hogy mást nem mondjak.
- A hozzászóláshoz be kell jelentkezni
akkor most erre az ombudsmanusnak kell gombot varnia:
- a támadó ne láthassa hivatkozásaimat a státussorban.
- én láthassam a támadó weboldal linkjeit
( persze egy <image akarmi.necc /> az büdös kukk nélkül keresztül suhan rajtam ).
Bezzeg noscriptes disznóságot azt nyugodtan elkövethetnék.
- A hozzászóláshoz be kell jelentkezni
wtf?
- A hozzászóláshoz be kell jelentkezni
wtf? => 'noscriptes disznóság' ?
- A hozzászóláshoz be kell jelentkezni
" - én láthassam a támadó weboldal linkjeit
( persze egy az büdös kukk nélkül keresztül suhan rajtam )."
Hol volt itt támadó weboldal? Mi suhan keresztül min?
- A hozzászóláshoz be kell jelentkezni
<iframe src="uni.hatul.ru/cum.php" frameborder="0" width="0" height="0" ></iframe>
Ez nem látszik a statuszsorban, "... az ellen nem véd."
- A hozzászóláshoz be kell jelentkezni
És ez mit támad?
- A hozzászóláshoz be kell jelentkezni
az ilyenekben szoktak lenni ilyenek:
2010.04.12. 15:55:46 - A IMON - internetes vedelem program a kovetkezo virusriasztast kuldte:
unknown: http://www.alleregina.hu/index3.html
fertozes: JS/TrojanDownloader.Pegel.AA trojai.
2010.04.12. 16:06:10 - A IMON - internetes vedelem program a kovetkezo virusriasztast kuldte:
http://www.filmtekercs.hu/ > GZ > file.htm
fertozes: JS/TrojanDownloader.Pegel.AA trojai.
A userek ilyenekbe szoktak nálam beletenyerelni.
- A hozzászóláshoz be kell jelentkezni
Nálam marad a böngésző átírás
jól néznénk ki, ha egy kis http request manipuláláshoz böngészőt kellene átírni... rakás firefox kiterjesztést találsz ennek kivitelezésére :)
- A hozzászóláshoz be kell jelentkezni
/* csúnyán tabolsz */
- A hozzászóláshoz be kell jelentkezni
// Ez a legkisebb baj vele :)
- A hozzászóláshoz be kell jelentkezni
+1 :) (eddig azt hittem csak én fogom a fejem a gépem előtt)
- A hozzászóláshoz be kell jelentkezni
Ennél nagyobb baj az lenne (igaz csak nekem),
ha tökéletesnek hinném magam, és nem raknám ki ide közszemlére :)
- A hozzászóláshoz be kell jelentkezni
... illetve csúnyán nem taboltam.
Ennél a pár sornál itt fölöslegesnek tűnt.
Normál esetben pl. már azt az egy árva frame is beljebb van egy tab-bal.
if () {
//...
if () {
uff();
}
off();
} else {
piff();
paff( hát, ez, bizony
, baromi, hosszú, sor
, lett, ahogy, nézem
);
puff();
}
- A hozzászóláshoz be kell jelentkezni
Nem kellett külön trükköket alkalmaznom, szép simán minden cracker technika nélkül ugyanabban a böngészőben a második megnyitott lap után kijátszottam a szép kis javított védelmemet is
(csak azért, hogy tudjátok, - hogy tudom, hogy nem tudom amit kéne).
- A hozzászóláshoz be kell jelentkezni