-->

[웹해킹] Webhacking.kr Challenge old 3번 문제 풀이

Webhacking.kr Challange old 3번 문제 풀이

Nonogram이라는 게임으로 시작하는 문제이다. 아래와 같이 블록을 선택하면 검정색으로 변하는 것을 확인할 수 있다.

 

 

solved 버튼을 누르면 get 변수로 _1, _2, ... 값들이 넘어가는 것을 볼 수 있는데 첫번째 칸이 칠해졌으면 _1=1이되고 칠해지지 않았으면 _1=0 이 되는 방식이다. 처음에는 여기서 SQL 인젝션을 해야한다고 생각해서 URL 창에 인젝션을 계속 했는데 되지 않아서 그냥 게임을 풀어주었다. 

 


webhacking.kr/challenge/web-03/index.php?_1=1&_2=0&_3=1&_4=0&_5=0&_6=0&_7=0&_8=0&_9=0&_10=0&_11=0&_12=0&_13=0&_14=0&_15=0&_16=0&_17=0&_18=0&_19=0&_20=0&_21=0&_22=0&_23=0&_24=0&_25=0&_answer=1010000000000000000000000  || true

 

webhacking.kr/challenge/web-03/index.php?_1=1&_2=0&_3=1&_4=0&_5=0&_6=0&_7=0&_8=0&_9=0&_10=0&_11=0&_12=0&_13=0&_14=0&_15=0&_16=0&_17=0&_18=0&_19=0&_20=0&_21=0&_22=0&_23=0&_24=0&_25=0&_answer=1010000000000000000000000  || 1=1

 

webhacking.kr/challenge/web-03/index.php?_1=1&_2=0&_3=1&_4=0&_5=0&_6=0&_7=0&_8=0&_9=0&_10=0&_11=0&_12=0&_13=0&_14=0&_15=0&_16=0&_17=0&_18=0&_19=0&_20=0&_21=0&_22=0&_23=0&_24=0&_25=0&_answer=1010000000000000000000000  || 1%3D1

 

 

정답은 아래와 같다.

 

 

노노그램을 풀고나면 아래와 같이 Clear! 라는 문구와 함께 name을 입력하라는 입력창이 보이게 된다.

 

 

아무값이나 넘겨보면 아래와 같이 로깅이된다.

 

 

여기서 name 값에 이것저것 인젝션을 계속 수행해보는데 로깅만 계속 남을 뿐 뭔가 나오는게 없다.

 

 

name 외에 다른 POST 변수가 있는지 버프 스위트를 사용해 패킷을 잡아본다. 앞에서 풀어주었던 answer 값이 함께 넘어간다.

 

 

 

따라서 이번엔 answer 값에 인젝션을 시도해본다. 이것저것 전부 시도해보다 보면 [ ' or 1=1-- ] 에서 query error가 뜨는데 쿼리 에러가 떴다는 건 어쨌든 인젝션을 해준 것이 무시되거나 필터링되지 않고 실제로 쿼리가 행해진 후 정상적이지 않아 에러가 난 것이므로 answer 부분에 인젝션을 해주는 것이 맞는 것으로 추측할 수 있다.

 

하지만 왜 에러가 뜨는지 모르겠어서 다른 분의 풀이를 찾아보니 -- 뒤에 공백이 필요하다고 한다. 정확한 이유는 모르겠고 추후에 이유를 알게되면 추가해보려 한다. 그건 그렇고 버프 스위트 공식 홈에서 커뮤니티 버전을 다운로드한 것인데 왜이렇게 저화질인지 모르겠다ㅠㅠ

 

 

 

쿼리 에러를 해결해주면 아래와 같이 solved 창을 볼 수 있다.

 

 

or 1=1 로 인해 쿼리문이 참이 되었고 뒤의 --로 인해 뒷부분 id=aaaa 가 무시가 되어버리게 되기 때문에 다른 로깅 정보도 볼 수 있게 되었다. admin의 answer에 우리가 보던 answer 값이 아닌 새로운 값이 나와있다. 해당 값을 인증해주면 된다.

 

 

댓글

Designed by JB FACTORY