sfw6은 보이는 것처럼 게시판 형태의 플레이리스트(?)가 나열되어 있는 페이지로 시작합니다. 처음에 이 문제를 보고 순간 멍 때렸던 것 같습니다. 어디서부터 손을 대야할지 모르는 문제였습니다. 기존까지 SQL 인젝션 문제만 풀다보니 생각이 되게 SQL 인젝션에 국한되어 있었던 것 같습니다. 그래서 소스코드를 보니 떡하니 아래와 같은 메시지가 있었습니다.
웹 문제도 소스코드를 보면서 분석해야 한다는 것을 간과했던 것 같습니다. 메시지를 해석해보면 옳지 않은 노래라면 사이트에 링크를 alert하라였습니다. "제목.kr"을 입력하면 되고 공백은 있으면 안 된다였습니다.
열심히 노래 제목을 검색해 보니 some things never change라는 노래에 x표시가 되어 있더군요. 그래서 그대로 입력했지만 당연히 필터링 조건들이 있었습니다. 몇 번 삽질하다 보니
'.kr','some','never',은 널 값으로 바뀌는거 같고 그리고 alert를 하니 r이 사라져서 하나 더 추가해주니 alert로 정상 작동했습니다. 널값으로 바뀌는것은 문자안에 문자를 삽입하는 방법으로 우회 했습니다.
하지만. change. -> change . ,ngs->h 로바뀌는 규칙이 존재했습니다. change. 은 제가 hange. , ange. 등등을 넣어보니 change. 만 공백이 발생했습니다. 그래서 change사이에 널값을 만들어주는 아무 값이나 넣으면 되겠다 싶어서 chansomee. 이런식의 필터링 위회 페이로드를 만들었습니다. 하지만 나중에 전체를 이을때 some은 한 번만 널값으로 만들어주고 .kr은 아닌지 .kr만 널값으로 바껴서 결국 chang.kre로 사용했습니다.
하지만 ngs->h는 중간에 널이나 공백을 넣어도 무조건 변화되길래 이 부분은 h를 이용하는 방식이 아닌 무조건 h로 바뀌지 않게 해야 한다라는 생각까지는 하였지만 아무리 삽질해도 생각이 나질 않았습니다. 그래서 이 부분만 먼저 푼 친구들 라업을 살짝 보니 thig->n으로 바뀌는 규칙이 있었다고 합니다... 제가 좀더 삽질을 했어야 되는 부분이었나 봅니다. 그래서 페이로드 완성시켜서 문제를 해결했습니다.
alerrt('somsomeethithiggsnevnevererrchang.kre.k.krr')
'웹 > sfw' 카테고리의 다른 글
sfw8 (페이지 변조 XSS) (0) | 2021.01.20 |
---|---|
sfw5 (information schema SQL injection) (0) | 2021.01.08 |
sfw4 (error based SQL injection) (0) | 2021.01.08 |
sfw3 (time based SQL injection) (0) | 2021.01.08 |
sfw2 (blind SQL injection) (0) | 2021.01.08 |