o problema é que tentei o comando curl na guia de rede do Chrome e não funcionou! então eu olhei na página html e descobri que ele faz isso
1- Criptografe a senha para sha256
2- então base64 codifica o hash sha256
3- então adicione o hash ao desafio (que ele pega de outra página)
4- então sha 256 a saída;essas linhas de código
var dbpass = base64encode(SHA256(Password.value));
var realpass = dbpass + challange;
form.addParameter('Password', SHA256(realpass));
Eu tentei esse passo a passo e ainda não funciona! o comando curl do chrome sem limpar
curl "http://192.168.1.1/index/login.cgi" -H "Connection: keep-alive" -H "Cache-Control: max-age=0" -H "Origin: http://192.168.1.1" -H "Upgrade-Insecure-Requests: 1" -H "DNT: 1" -H "Content-Type: application/x-www-form-urlencoded" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3" -H "Referer: http://192.168.1.1/html/index.asp" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: en-US,en;q=0.9,ar;q=0.8" -H "Cookie: Language=en; SessionID_R3=7EGmyRl6PcjZyCodTPl8zshYtbagRfUEIYm4njyVzkHAjoRgfeg8OLYerWewZlUwo5r4FeTPnsbRyB7eeCiVNf22aoU6E7eDAqAXc4w8iINkdt3srn3pdKYCDjvXmZw5; FirstMenu=Admin_0; SecondMenu=Admin_0_0; ThirdMenu=Admin_0_0_0" --data "Username=admin&Password=3bacd54fb595f90906feb6c68659c96bee5a2f4a594aea3fc50a56c306a04cb5&challange=IkYo7bcXU68FzOOzCPBg" --compressed --insecure
o comando depois de limpá-lo um pouco
curl "http://192.168.1.1/index/login.cgi" -H "Cookie: Language=en; FirstMenu=Admin_0; SecondMenu=Admin_0_0; ThirdMenu=Admin_0_0_0" --data "Username=user&Password=16e1c03a0075fa68ddca3398b5cd6342692cb9868b68a4c9c0a92b89311667a8&challange=KCoMUJ4u3SEf7bfDJ3o9"
Eu removi SessionID_R3 dele porque acho que não é necessário e tentei o comando com ele e não fez nenhuma diferença. uma conexão bem-sucedida no wireshark
e a guia de rede do Chrome
o SessionID_R3 não é necessário para fazer login, mas necessário para visualizar as páginas necessárias para autenticação e fornece uma nova quando você faz login com sucesso
o comando de trabalho
eu teria removido os cookies dele, mas é necessário.
o problema era o espaço adicional na quarta etapa que resultou em um hash errado 'senha + desafio'