본문 바로가기

웹/sfw

sfw6 (XSS)

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