본문 바로가기

Webhacking/LOS[Lord Of Sql injection]

[LOS 2번 : Cobolt] 문제 풀이

728x90
반응형

LOS 2번 Cobolt를 풀어보겠습니다.

1번 박스를 통해, 어떤 쿼리를 수행하고자 하는지 확인이 가능하며,

2번 박스를 통해, 문제 풀이의 조건을 알 수 있습니다.

- 1번 박스 : id는 일반적이나, pw의 경우 전달받는 즉시 md5 암호화 하여 조건문에 사용합니다.

- 2번 박스 : 1번 박스를 통해 조회를 성공하여 id를 받아왔다면, 그 값이 꼭 "admin" 이어야만 문제가 해결됩니다.

1번 문제와 다르게 저희는 문제를 통해 한가지 정보를 알아낼 수 있습니다.

바로 admin이라는 아이디가 테이블에 존재한다는 것입니다.

1번과 다르게 정보를 준다는 점을 통해 이 문제의 의도를 파악할 수 있습니다.

"ID는 알고 있으나, PW를 모르는 경우 ID만으로 로그인을 성공시켜라" 가 이 문제의 의도임을 알 수 있습니다.

3번 박스를 통해 어떤 식으로 공격을 수행하였는지 확인할 수 있으며,

4번 박스를 통해 문제가 해결되었음을 확인할 수 있습니다.

- 3번 박스

현재 admin이라는 아이디가 있다는 것을 알고 있기에, 기존의 방법과 달리, 굳이 or문을 이용하여 강제로 쿼리를

참이되는 값으로 만들 필요 없이, id 조건 뒤에 존재하는 pw 조건을 무효화 시키는 방법으로 공격을 수행합니다.

공격 방식은 아래와 같습니다.

1. id에 admin이라는 값을 입력한다.

2. 싱글쿼터(')를 입력하여 문자열 영역을 종료시킨다.

3. --+를 이어 입력함으로써, 이하 조건을 무효화 시킨다. (여기서 +는 URL에서의 공백을 의미한다.)

- 4번 박스

오로지 id='admin'이라는 조건만으로 Select 쿼리를 수행했기에, 정상적으로 admin으로 로그인 되어 문제가 

해결되었음을 확인할 수 있다.


728x90
반응형