jackraymund
24.11.2013, 12:04:41
Witam, ostatnio zaciekawiła mnie jedna rzecz, dokładniej.
Przy wysyłaniu wiadomości do kogoś(nie znajomego) w serwisie zadane.pl nie generuje żadnego zapytania.
Dla pewności sprawdziłem ruch TCP, tam widziałem 2 pakiety bez żadnej treści.(możliwe że jednak coś przeoczyłem)
Jakim cudem to możliwe?
Na jakiej zasadzie jest to zrobione że serwis potrafi ukryć te zapytania?
Bo jakim innym sposobem może przesłać dane do serwera?
nospor
25.11.2013, 08:02:50
Cytat
możliwe że jednak coś przeoczyłem
No, i sam sobie odpowiedziales
jackraymund
26.11.2013, 16:43:54
Sprawdziłem czy należy do standardowych protokołów, czyli http 1.1, http 2.0 spyd, quiz, websocket. Niestety żaden z nich.
Nie mogę się doszukać funkcji szyfrującej zapytanie. A serwer odpowiada w postaci zwykłego tekstu.
Próbowałem za pomocą chroma, lecz nie znalazłem.
Jaki program polecacie, do nagrywania i przeszukiwania obszernych plików javascript?
Albo przedstawi mi droga po drodze jak profiler w web developer, tylko bardziej dokladnie.
Abym mógł np. podejrzeć daną zmienną jak wyglądała?
werdan
26.11.2013, 17:29:13
Sprobuj Fiddler2 lub Wireshark. Ten drugi ci wszystko pokaze.
Własnie sprawdziłem ten serwis i wysyłanie wiadomosci do nieznajomego. To jest robione przez WebSockets i wszystko widze z devtool od chroma.
{
"startedDateTime": "2013-11-26T16:21:07.583Z",
"time": -1,
"request": {
"method": "GET",
"url": "ws://22.pl.comet.z-dn.net:7878/socket.io/1/websocket/459587138548286569749",
"httpVersion": "HTTP/1.1",
"headers": [
{
"name": "Origin",
"value": "http://zadane.pl"
},
{
"name": "Connection",
"value": "Upgrade"
},
{
"name": "Sec-WebSocket-Extensions",
"value": "x-webkit-deflate-frame"
},
{
"name": "Host",
"value": "22.pl.comet.z-dn.net:7878"
},
{
"name": "Sec-WebSocket-Key",
"value": "0OfGQJtML6cNZrx9L9ZaWQ=="
},
{
"name": "Upgrade",
"value": "websocket"
},
{
"name": "Sec-WebSocket-Version",
"value": "13"
}
],
"queryString": [],
"cookies": [],
"headersSize": 89,
"bodySize": 0
},
"response": {
"status": 101,
"statusText": "Switching Protocols",
"httpVersion": "HTTP/1.1",
"headers": [
{
"name": "Date",
"value": "Tue, 26 Nov 2013 16:21:06 GMT"
},
{
"name": "Connection",
"value": "Upgrade"
},
{
"name": "Content-Length",
"value": "0"
},
{
"name": "Server",
"value": "MochiWeb/1.0 (Any of you quaids got a smint?)"
},
{
"name": "Upgrade",
"value": "websocket"
},
{
"name": "Sec-Websocket-Accept",
"value": "u7Jk6qHv78DLopQFrG9ousFNUm4="
}
],
"cookies": [],
"content": {
"size": 0,
"compression": 0
},
"redirectURL": "",
"headersSize": 13,
"bodySize": 0
},
"cache": {},
"timings": {
"blocked": 0,
"dns": -1,
"connect": -1,
"send": -1,
"wait": -1,
"receive": -1,
"ssl": -1
},
"pageref": "page_1"
}
Cała gadka jest we 'frames', ale cos nie można skopiowac.
jackraymund
26.11.2013, 17:57:01
Ok. Ale widzisz jak odpowiada te zapytanie? Switching protocols i dalej się kończy. To czemu nie pokazuje requestów?
dodaj filter do wiresharka
ip.src == 5.9.143.201 || ip.dst == 5.9.143.201 <-- serwer do zapytań js
ip do serwera zadane.pl to 78.46.24.45 jeżeli się przyda
http://screenshooter.net/4282425/dftdsoqTam gdzie widzisz len powyżej 200 to będzie pakiet z contentem, reszta wartości nie zmienia się.(ten pakiet wlasnie jest zhashowany)
Serwer odpowiada plain textem.
Sam google nie łapie tych pakietów.
Możesz zobaczyć wchodząc tutaj
chrome://net-internals/
@edit
co ja mówie, rzeczywiście masz racje
http://screenshooter.net/4282425/ecvvbur len 5, to jest podtrzymanie polaczenia
werdan
26.11.2013, 18:22:27
Tam jest jakieś haszowanie.
Z response:
Sec-WebSocket-Extensions:x-webkit-deflate-frame
Sec-WebSocket-Key:nGfpSlN7akav/ugKMbK+4Q==
Sec-WebSocket-Version:13
Zmieniłem IP i poszło RELOAD Frame. To ponizej:
BpE@5Wz hG>
'P~5:::{"name":"private.receive","args":[{"type":"new_message","body":"Taak...","hash_id":"1385485547173_05511d8d9469788724ae8a14f9964c99","from":5858181,"rid":5}]})5:::{"name":"rooster.online","args":[[]]}