본문 바로가기

보안

[wargame.kr] DB is really GOOD

이제 슬슬 모르는 분야가 나온다

 

user name과 db의 연관성을 찾으라고 한다.

 

링크로 들어가면 이런 화면이 나온다.

 

 

로그인을 하면 이런 화면이 나온다.

name으로 user를 구분하고 메모를 하는 방식

 

콘솔창을 보면 GET으로 db에 있는 메모를 갖고오고, POST로 write하는 것 같다.

 

database 종류과 관련해서 서치를 해봤더니 mysql injection 공격으로 db 정보를 알 수 있는 것 같았다.

 

 

일단 admin으로는 로그인이 안된다.

 

그냥 막 'or 1=1--같은 쿼리문을 넣어보거나 특수문자를 넣어봤는데 write에서 뭘 할 수 있는건 아닌것 같았다.

user login할 때 관련이 있다고 생각했다. 

 

/dare로 로그인했더니 저런 화면이 나왔다. 내가 /dare로 했을 때 open('.db/wkrm_/dare...')를 하는 것을 보아, /db/wkrm_에 정보가 저장되어있을 것이라고 생각했다.

 

admin 로그인이 안됐으니 admin을 붙여봤는데 아무것도 안나와서 좀 찾아봤더니..ㅋㅋㅋ.. 원래 dare...이렇게 뜰게 아니라 .db가 붙어있어야되는데 내 화면엔 안떴던 것이었다.

 

/wkrm_admin.db를 쳤더니 .db 파일이 다운받아졌다.

바로 열 수는 없고 프로그램이 필요했다.

 

열심히 다운받아서 

 

 

이것저것 누르다 보니 얻었다.

 

링크로 들어가보니 플래그가 뜸

 

 

결론적으로 무슨 문제일까 생각해보았다.

 

username에서 허용되지 않은 문자를 집어넣고 login을 했더니 에러가 뜨면서 db의 위치가 노출 되었고,

admin(username).db에 memo라는 테이블이 있고 그 안에 flag가 있었다.

 

에러창에서 db의 위치를 노출 시켰다는 점과, username에서 /,등의 문자를 필터링 하지 않았기 때문에 생긴 취약점 같다.

 

오늘도 한문제 끝~~ 나중엔 mysql table갖고 조작하는 문제도 풀어보고 싶다.

'보안' 카테고리의 다른 글

[wargame.kr] tmitter  (0) 2020.01.20
[wargame.kr] md5 compare  (0) 2020.01.19
[wargame.kr] strcmp  (0) 2020.01.14
[wargame.kr] md5 password  (0) 2020.01.12
[wargame.kr] login filtering  (0) 2020.01.11