본문 바로가기
개인 공부/WEB

[웹해킹] sf ctf 제출문제 해설

by 아메리카노와떡볶이 2021. 7. 18.
728x90
ctf 제출문제 해설

 

알수없는 영어 문자와 로그인창이 뜬다. id와 pw를 입력하고 로그인하는거 같다.

여기 이 문자가 암호화 된 문자라는 것을 알아내는것이 첫번째 문제이다. 각 단어를 구글링해보면 nqzva가 admin의 ROT13암호화 된 문자열이라는 것을 금방 알아차릴 수 있다.

root, user, guest 같은 흔한 입력을 넣어보면 모두 존재하지 않는 아이디라는 문구가 뜬다.

테이블에 admin 계정만 존재하기때문에 문제를 접근할때 암호화된 문구는 쉽게 눈치챌수있을거같다.

즉 이 문제는 admin 계정으로 로그인하는 것인데, id에 admin으로 로그인하면 여전히 존재하지 않는다는 경고 메시지가 뜬다. admin의 ROT13 암호화 문자열인 nqzva로 두고 임의로 비밀번호를 입력하면

 

이제 올바르지 않은 비밀번호라고 경고문구가 바뀐다. 즉 관리자계정 아이디는 nqzva이고

비밀번호를 알아내야한다.

다양한 입력을 해도 다 올바르지 않은 비밀번호라고 뜬다.

id?=nqzva&pw?=' or 1=1#

위와 같이 시도해도 실패!. 이때 생각할 수 있는 것은 id도 admin을 ROT13의 암호화된 문자열

이기때문에 pw도 str_rot13 함수가 걸려있지않을까? 생각해보는 것이다.

id?=nqzva&pw?=' be 1=1#

위의 입력을 주고 로그인을 누르면

다음과 같이 쿼리문이 출력된다. 예상한대로 id와 pw는 rot13으로 암호화되어 출력되고 있고, rot13에 맞춰서 입력을 주면 쿼리가 참이 되었을때, 그 쿼리가 출력이 된다.

 

이것을 힌트 삼아서 이제 sql injection 공격을 시행한다.

select pw from member where id='admin' and pw=' 'or if(length(pw)>5,(select 1 union select 2),1)%23

나는 위와 같은 error based sql injection 공격을 시도하기 위해, 위의 payload를 rot13으로 변환한다.

id='nqzva' and pw=' 'be vs(yratgu(cj)>5,(fryrpg 1 havba fryrpg 2),1=1)#

즉 admin 계정의 password의 길이가 5보다 크다면, union select 함수때문에 error가 반환될 것이고, 5보다 작다면 1=1이 수행되어 true가 될 것이다.

5보다 클때, 1=1이 수행되어 참이 됐기때문에 쿼리가 출력된 모습. 즉 pw의 길이는 5보다 작다

id='nqzva' and pw=' 'be vs(yratgu(cj)>3,(fryrpg 1 havba fryrpg 2),1=1)#

 

숫자를 바꾸어 3으로 시도했을때, 에러가 반환된다. 따라서 비밀번호의 길이는 4이다.(현재 임의로 설정된 비밀번호)

 

bruteforcing을 통해서도 구할 수 있다. 

마찬가지 방법으로 brute forcing을 통해서 4자리의 비밀번호 한글자씩 유추해나가면 된다.

임의로 설정한 비밀번호는 현재 1234이다.

id= nqzva, pw=1234 를 통해 로그인하면 게시판으로 이동한다.

여기 게시판에 플래그를 올려둘 것이고, 혹시나 다르게 접속하는 경우를 방지하기 위해 게시글에 비밀번호를 관리자 계정 비밀번호인 '1234'로 설정해 둘 것이다.

 

++++++++++++++++++++++++++++++++++++++++++++++++++++++

문제를 제출 할 때에 db에 설정된 id와 pw는

admin // s2j0ngl0v2이다. 

따라서 rot13 암호화에 맞게 수정해주면

id는 nqzva , pw는 f2w0aty0i2를 입력하면 문제를 해결할수있다.

 

728x90

'개인 공부 > WEB' 카테고리의 다른 글

[웹해킹] dreamhack php-1  (0) 2021.07.26
[웹해킹] dreamhack cookie  (1) 2021.07.26
[웹해킹] XSS GAME - LEVEL 6  (0) 2021.07.13
[웹해킹] XSS GAME - LEVEL 5  (0) 2021.07.13
[웹해킹] XSS GAME -LEVEL 4  (0) 2021.07.13

댓글