Fórum Root.cz
Hlavní témata => Server => Téma založeno: Smaragd 12. 04. 2013, 19:51:08
-
Zdravim! Uz par dni sa snazim rozbehat HTTP GET poziadavku cez telnet na lokalny web server... Nastudoval som si niekolko materiálov ako by mal vyzerat request ale nedarí sa mi dostat odpoved pravdepodobne koli zaujimavej prkotine. Skusam to na zadiadeni s openwrt. Ak pouzijem prikaz
echo -ne "GET / HTTP/1.0\r\n" | telnet 127.0.0.1 80
v tcpdumpe si pozriem packet a za kazdym CR mi vypise jeden NULL bajt. Vedeli by ste poradit preco mi toto robi a ako by som mohol sfunkcnit?
Nasiel som odkaz na RFC http://www.freesoft.org/CIE/RFC/1123/31.htm (http://www.freesoft.org/CIE/RFC/1123/31.htm) ale nejako sa z toho enviem vymotat. Je to chyba telnetu? Skusal som aj varianty echa ako cat printf.
-
Problém je v tom, že echo skončí hned po vypsání těch dvou řádků a telnet pak ani nestihne přijmout odpověď. Schválně si zkus:
(echo -ne "GET / HTTP/1.0\r\n"; sleep 1) | telnet 127.0.0.1 80
odpověď přijde :-)
-
Dakujem za odpoved, ale problem to neriesi. Aj ak sa skusim pripojit na server s inym http serverom, odpoved pride(aj ked len bad request) aj bez cakania. No na server lighttpd co sa pokusam pripojit mi to ani s cakanim nepomoze. Tak to vidim na dokonalost/nedokonalost lighttp-u. Z windowsu ked posielam request tak mi to prejde bez problemu. Windowsacky telnet posiela CR a newline bez problemu. Tak treba nieco s tym telnetom. Nejaky napad ako sa trosku pohnut? Diky
-
Jedna vec je, ze vam chybi jeste jeden prazdny radek, musi byt dva prazdne radky. \r neni povinne btw.
Druha vec je, ze ten telnet to spojeni hned uzavira, zkuste srovnat:
Tohle by melo fungovat:
( echo -ne "GET / HTTP/1.0\n\n"; sleep 1;) | telnet 127.0.0.1 80
Jinak je lepsi misto telnetu pouzit netcat:
echo -ne "GET / HTTP/1.0\n\n" | nc 127.0.0.1 80
Podivejte se do wiresharku/tcpdumpu, ten telnet posle ten pozadavek a hned posila FIN (ukoncuje spojeni), na nic neceka.
-
este tam skus pridat HTTP parameter Host.
-
S tim srovnanim jsem myslel tyhle 2 cmd:
echo -ne "GET / HTTP/1.0\n\n" | telnet 77.75.76.3 80
echo -ne "GET / HTTP/1.0\n\n" | nc 77.75.76.3 80
-
Cili telnet pouzivat jedine interaktivne, jinak pokud se mu uzavre stdin, tak okamzite ukoncuje spojeni.
-
Opravdu by asi bylo lepší se zaměřit na univerzálnější netcat.
-
Stale sa mi nedari... uz to vyzeralo nadejne zeby som pouzil ukoncenie riadkov iba s newline... no stale to nechce ten webserver zozrat... samozrejme ukoncujem poziadavku s dvoma newline charaktermi. No ak poslem tento requestik na ten server routeru necha otvorene pripojenie a neodpoveda. No ak poslem na iny router s RouterOS (Routerboardik) v poriadku odpovie. Tak isto funguje aj odpoved od DD-Wrt. No openwrt ani airOS nefunguje. Netcat pouzivat uz nemozem lebo nie je na vsetkych platformach, preto som sa chcel pokusit o nieco taketo s telnetom. Nemate nejaky napad ako cez ten telnet pretlacit cisty CarrigeReturn? Myslim ze iba v tom bude pes zakopany ale ak mate nejake ine navrhy rad skusim!