티스토리 뷰
포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.
22번 문제이다.

sql injection 문제인 것 같다.
우리의 목표는 admin id에 로그인하는 것이다.
버튼은 login과 join 두 개가 있다.
join을 살펴보자.

join클릭 시 회원가입 페이지로 온다.

id와 pw 둘 다 1로 입력하고, join에 성공한 모습이다.

새로 만든 계정으로 로그인을 진행해보자.

정상적으로 로그인되며 password의 hash값을 주었다.
hash의 길이가 32 자릿수이며, 16진수 값으로 이루어져 있으니 md5라고 유추할 수 있다.
이번 문제는 get이 아닌 post 형식으로 값을 전달해준다.
따라서 우리는 url에서부터 칼럼의 값을 알 수 없다.
하지만 burp suite를 사용하면 알아낼 수 있다.

burp suite로 id와 pw를 1로 입력하여 로그인하는 과정을 캡처하였다.
각각의 칼럼명은 uuid와 pw인걸 볼 수 있다.
우리는 admin계정으로 로그인을 해야 하니 pw의 길이, 값을 추출해야 한다.
길이를 알아내는 인젝터를 만들어 보자.
인젝터를 만들기전에 한 가지 놓친 게 있다.
바로 참과 거짓을 구분할 수 있는지 여부이다.
한번 확인해보자.
username = 1'and 0#

username= 1' and 0#


참 일때 login fail, 거짓일 때 Wrong password! 가 표현된다.
이제 인젝터 준비물이 모두 갖추어졌다.
admin의 pw길이를 추출하자.

32자리이다.
값을 추출하자.

6c9ca386a903921d7fa230ffa0ffc153가 추출되었다.
복호화시켜보자.
md5의 특성상 단방향 암호라 원문을 찾는건 그냥 사전 검색 기법 하나뿐이다.
필자가 여러 곳을 찾아보다 복호화되는 곳을 겨우 하나 찾았다.
https://www.md5online.org/md5-decrypt.html
MD5 Online | Free MD5 Decryption, MD5 Hash Decoder
www.md5online.org

wowapple이 출력되었다.
이제 로그인하면 된다.

로그인에 실패했다.
이유를 생각해보니 wow와 apple이 뭔가 어울리지 않는다..
아까 id가 1인 pw의 hash값을 찾아보자.

ㅋㅋㅋㅋ 나는 분명 id와 pw를 1만 입력했는데 apple이 붙어있다.
따라서 admin의 pw는 wow이다.

문제 해결!
시행착오
1. 32자리이며 16진수로 이루어진 값은 md5일 수 있다.
2. 이번 문제에서 pw값에 apple이 붙고 난 후 md5인코딩이 되었는데, 이 apple을 salt값이라 부른다.(양념하다는 뜻이란다..)
'SQL injection > webhacking' 카테고리의 다른 글
| Webhacking 24번 (0) | 2022.04.14 |
|---|---|
| Webhacking 23번 (0) | 2022.04.11 |
| Webhacking 21번 (0) | 2022.04.07 |
| Webhacking 20번 (0) | 2022.04.07 |
| Webhacking 19번 (0) | 2022.04.06 |
- Total
- Today
- Yesterday
- 김영한 실전 자바 기초
- 상속
- 기술스택
- 자바
- 프로그래머스 상품을 구매한 회원 비율 구하기
- 김영한 실전 자바 중급
- 백준
- static
- los 15단계
- samron
- los 15
- 코딩테스트
- 상품을 구매한 회원 비율 구하기 파이썬
- webhacking.kr
- 프로그래머스 상품을 구매한 회원 비율 구하기 파이썬
- Los
- samron3
- 백준 피보나치
- spring
- 김영한
- lord of sql
- 김영한 실전 자바 기본
- 프로그래머스
- 백준 피보나치 수열
- java
- extends
- 스프링
- ys.k
- zixem
- 코딩테스트 준비
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |