Webhacking

웹 해킹 Webhacking 문제 풀이 5번

bonschicken 2020. 12. 16. 23:05
728x90

메인 페이지
메인 페이지 소스 코드

 

location.href='mem/login.php' 

 

mem/login.php로 설정했습니다. 

 

혹시나 하는 생각으로 mem 디렉터리가 있나 호기심으로 들어갔습니다.

 

 

디렉터리 리스팅

 

웹 구조을 알 수 있습니다. 

 

join.php 디렉터리가 있는 것을 알 수 있습니다.

 

 

 

bye라는 문구와 알림 창을 볼 수 있습니다.

 

 

join.php에서 웹 소스코드 봐야 합니다.

 

소스 코드가 길어서 요약했습니다.

 

취환된 문자들

 

취환된 문자들을 대입한 코드

 

해당 소스을 보면

 

소스을 보고 유추해보면 로그인 폼을 완성시키고

 

아이디 폼에 길이 20글자 제한하여 입력 할 수 있고 

 

비밀번호 폼을 만들어라 라는 소스 코드 입니다. 

 

이에 

 

 

login.php 수정된 소스 코드

login.php에서 소스코드을 join.php로 데이터을 보내도록 합니다.

 

SQL 공백문자 취약점을 이용해서 admin계정을 만들려고 합니다.

 

공백문자 삽입

 

join.php에서 20글자만 입력하도록 제한합니다.

 

로그인 입력:  '                    admin' 

비밀번호 : 아무거나

 

입력하면 admin계정을 만들 수 있습니다.

 

 

 

 

 

 

 

login.php 사이트로 가서 

 

로그인 입력:  '                    admin'

비밀번호 : 아무거나

 

입력하면

 

해결합니다.

 

 

 

 

참고자료

 

document.write --> 자바스크립트 함수로 웹사이트 꾸미는 함수 

 

SQL 공백문자 취약점 --> 아이디을 생성하는 SQL문 대략적으로 ~~~~='아이디'

                                  요기서 공백문자을 넣어도 같은 ' 아이디' ='아이디' 로 인식하는 취약점