
크롬 네트워크 탭에서 컬 명령을 시도했지만 작동하지 않는 문제! 그래서 내가 들여다봤어페이지 HTML 그리고 그것이 이것을 한다는 것을 발견했습니다
1- sha256의 비밀번호를 암호화합니다.
2- 그런 다음 base64가 sha256 해시를 인코딩합니다.
3- 그런 다음 해시를 challange에 추가합니다(다른 페이지에서 가져옴).
4- 그런 다음 이 코드 라인을 출력합니다.
var dbpass = base64encode(SHA256(Password.value));
var realpass = dbpass + challange;
form.addParameter('Password', SHA256(realpass));
나는 그 단계를 단계별로 시도했지만 여전히 작동하지 않습니다! 청소하지 않고 크롬에서 컬 명령
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
조금 정리한 후의 명령
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"
나는 그것이 필요하지 않다고 생각하고 그것으로 명령을 시도했지만 아무런 차이가 없었기 때문에 SessionID_R3을 제거했습니다. Wireshark에서 연결 성공
그리고 크롬 네트워크 탭
답변1
SessionID_R3은 로그인에는 필요하지 않지만 인증이 필요한 페이지를 보는 데 필요하며 로그인에 성공하면 새 페이지를 제공합니다.
작업 명령
curl "http://192.168.1.1/index/login.cgi" -H "Cookie: Language=en" --data "Username=user&Password=16e1c03a0075fa68ddca3398b5cd6342692cb9868b68a4c9c0a92b89311667a8&challange=KCoMUJ4u3SEf7bfDJ3o9"
쿠키를 제거했을 수도 있지만 필수입니다.
문제는 네 번째 단계의 추가 공간으로 인해 잘못된 해시된 '비밀번호+챌린지'가 발생했다는 것입니다.