분석/교육청 자가진단(4)
-
교육청 자가진단 웹페이지 분석 (9월 말 경 업데이트[점검] 이후)
9월 말 점검 이후 RSA key가 그대로길래 오류 수정한 줄 알았는데 API 관련하여 꽤 수정이 있었던 것 같습니다. 다시 분석하는겸 분석 과정도 적어보겠습니다. 학교 검색 API 기존에는 /school을 사용했는데 현재는 /v2/searchSchool로 변경된 것을 볼 수 있습니다. 파라미터 부분은 변한 것이 없는 것을 볼 수 있습니다. eduro-hcs/PoC[school.js]: 기존 코드 로그인 API (학교, 이름, 생년월일) 기존 로그인 API는 loginwithschool 이였는데 /v2/findUser로 변경되었습니다. 여전히 Host는 {교육청}hcs.eduro.go.kr 입니다. 볼 수 있듯이 생년월일과 이름은 여전히 암호화되어있고, orgCode(학교 코드)는 평문 전송입니다. 점검..
2020.10.04 -
자가진단 사이트 분석 [4] _ Dart로 PoC 코드 작성해보자.
github.com/eduro-hcs/poc_dart eduro-hcs/poc_dart PoC with Dart, (firststep for flutter app dev). Contribute to eduro-hcs/poc_dart development by creating an account on GitHub. github.com Flutter로 본인의 이름, 비밀번호, 학교 등 기본 정보만 채워넣으면 자동으로 자가진단하는 앱을 만들어보고자 하는데 사실 Dart로 가능한지 궁금했습니다. 일단 RSA 부분이 골 때렸는데, openssl을 이용해서 der -> pem으로 변환하는 과정을 거쳐서 public key를 뽑았고, Dart의 encrypt 패키지를 사용하여 성공적으로 RSA Encryption을 ..
2020.09.27 -
자가진단 사이트 분석 [3] _ PoC 코드 작성 완료 (비밀번호 없이 설문 가능)
1번 과정에서 Authorization 헤더에 사용되는 JWT를 받게 되고, 그 토큰을 가지고 2, 3번 과정을 통해서 비밀번호 검증을 합니다. 그런데, 비밀번호(2,3) 과정을 생략하여도 4,5,6번 과정으로 진행할 수 있었습니다. JWT에다가 비번 확인했는지라도 박아놓던가.. 실제로 위 스크립트를 가지고, 1번 과정을 통해서 JWT를 받아서 6번, 설문을 제출할 수 있습니다. 결국, 부실하게 구축한 것이나 마찬가지 입니다.
2020.09.27 -
자가진단 사이트 분석 [2] _ PoC 코드 작성
PoC 코드는 아래 깃허브에서 볼 수 있습니다. https://github.com/eduro-hcs/PoC eduro-hcs/PoC 자가진단 웹페이지, Proof of concept. Contribute to eduro-hcs/PoC development by creating an account on GitHub. github.com 로그인(계정 정보)가 없는 상태로 웹에 들어가게 되면, 이름, 생년월일과 학교 선택하는 창이 나옵니다. 여기서 submit하게 되면 loginwithschool에 xhr 요청을 보냅니다. 여기에 앞으로 Authorization 헤더에 사용될 JWT 토큰이 담겨있습니다. 그리고, 비밀번호 입력창으로 넘어갑니다. (이미 계정을 생성했다는 가정 하에) 비밀번호를 치면 second..
2020.09.27