Webhacking 22번 문제입니다.
admin으로 로그인에 성공하는게 미션이라고 합니다.
먼저 admin으로 로그인하는게 미션이라고 했으니 id부분에 admin
pw 부분에는 1234로 입력해보겠습니다.
Login Fail 이 출력되는데 만약 다른 출력결과가 있다면 블라인드 SQL 인젝션 공격이 가능하니
확인해보겠습니다.
id는 admin이고 pw의 길이가 1이상일경우로 넣어 True를 출력되게 만들었습니다.
전달해보니
Login Fail 이 아니라 Wrong password 가 출력되었습니다.
블라인드 SQL 인젝션 공격이 가능한것을 확인했으니 파이썬코드로 구성해보겠습니다.
URL로 값이 전달되지 않는 POST방식이라 아래 글과 직접 이전 Los 워게임을 해결할때
사용한 블라인드 SQL인젝션 코드를 활용했습니다.
https://security-nanglam.tistory.com/77
[python] requests 모듈 정리
[requests] requests 설치 - cmd[관리자 권한] 에서 pip install requests라고 입력해서 설치를 하면 된다. - 만약 설치가 안된다면 pip 환경변수 설정이 안되있는 것이므로 환경변수를 설정하자. [python] 환경변
security-nanglam.tistory.com
https://skysquirrel.tistory.com/71
(Lord of SQLInjection) bugbear 문제
(Lord of SQLInjection) bugbear 문제입니다. 이번문제도 no가 있는걸보니 이부분을 활용하면 될것같습니다. 필터링을 먼저보면 싱글쿼터, substr ascii = or and like 0x 까지 필터링이 엄청 늘었습니다. 우회방.
skysquirrel.tistory.com
위 자료를 토대로 코드를 아래와 같이 구성했습니다.
구성한 코드를 실행시켜보면
pw의 길이는 32자리 이며, 6c9ca386a903921d7fa230ffa0ffc153 이라고 합니다.
pw의 값을 찾았으니 admin과 pw를 제출하면
문제가 해결되지 않았습니다...
여기서 도저히 모르겠어서 여러가지 삽질을 하다가
join이 있어서 들어가보니
DB에 등록이 가능하더라구요.
해서 테스트를 해볼겸 id = test pw= test를 삽입하고
작성한 exploit code로 추출이 되나 테스트를 해봤더니
길이가 32가 나왔습니다.
저는 분명 pw를 test로 입력했기에 4자리가 나와야하는데 32자리가 나온것을 보고
암호화를 했구나를 알게 되었습니다.
검색으로 32자리 암호화를 찾아보니
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=thescream&logNo=220210025548
인크립션 해쉬 함수 별 길이
구글해킹을 이용하여 SQL 파일을 가져 왔다. admin과 패스워드 데이타가 있는 DB Table까지 접근을 ...
blog.naver.com
MD5라고 찾을 수 있었습니다.
그러면 아까 admin으로 찾았을때 나온 pw값을 아래 복호화 사이트의 도움을 받아 복호화를 해보면
MD5 hash decrypter / decoder: Reverse lookup MD5 hashes online with this tool
Tools to decode / decrypt / reverse lookup MD5 hashes This tool searches multiple MD5 rainbow tables for matches to a large number of MD5 hashes. MD5 is a hashing algorithm and therefore is technically not encryption, but hashes can be resolved and reverse
md5.web-max.ca
복호화에 성공하고 String 타입으로 나온 값을 찾을 수 있었습니다.
한버더 확인하고자 pw를 test로 DB에 저장했던 값을 추출해보면
아래와 같이 md5로 바뀐 값이 나오고
이 값도 복호화를 시도해보면 testapple로 나옵니다.
즉 pw를 입력하면 apple를 추가한뒤 MD5로 암호화 한다음 해시값을 저장한다고 이해 할 수 있습니다.
그러면 apple는 로그인시 pw의 값이 아니므로 제외하면
admin의 pw는 wow이니 로그인을 시도해보면
hi admin이 출력되고 admin 로그인에 성공하면서 문제가 해결되었습니다.
'Wargame(Web) > Webhacking.kr Writeup' 카테고리의 다른 글
Webhacking Writeup 25번 문제 (0) | 2022.09.26 |
---|---|
Webhacking Writeup baby 문제 (0) | 2022.09.26 |
Webhacking Writeup 8번 문제 (0) | 2022.09.26 |
Webhacking Writeup CHILD 문제 (0) | 2022.09.04 |
Webhacking Writeup 50번 문제 (0) | 2022.09.01 |