
문제를 누르니 왠 네모네모로직 문제를 보여주네요.
조금 당황했지만 코드부터 보겠습니다.

특별한건 보이지 않는 코드네요...
go() 함수도 보면 우리가 할 수 있는건 없어보입니다.
네모네모로직을 풀고 다음으로 넘어가보겠습니다.

드디어 뭔가 할 수 있을것 같은 화면이 나왔습니다.
웹해킹에서 저런 입력폼이 보이면 SQL인젝션부터 생각이나죠.
코드도 보겠습니다.

입력폼 관련 코드를 보면... hidden 타입으로 값을 넘기는걸 볼 수있네요.
value에서 2진수들은 아마 전 페이지의 네모네모로직 문제 답을 뜻하는것 같습니다. 그래도 수상해보이네요.
처음이니 입력폼에 123만 입력해보고 넘어가겠습니다.

제가 입력한 123 과 아까 보았던 answer의 값, 그리고 제 IP가 나오네요.
다른문제와 다르게 코드에 힌트가 없고... 가장 눈에 띄던건 입력폼이었죠? SQL인젝션 공격을 시도해보겠습니다.

입력 한 그대로 출력이 되네요... 아마 필터링을 통해서 출력되나봅니다.
아마 저 값들 중 하나가 정답에 가까울것 같은데 name은 여러 시도를 해봐도 안되고, IP는 말 그대로 제 컴퓨터 IP니까 버프스위트를 통해서 변조할 순 있을껍니다.
다만 아마 문제와는 관련없어보이네요. 그럼 남은건 저 수상한 answer인데...
이래저래 고민을 해보다가 answer값을 건들여보기로합니다.
처음엔 버프스위트를 통해서 answer값을 변조해서 넘겨볼까했지만, 문득 개발자 도구에서 코드를 수정해서 넘겨도될 것 같더라고요.
때문에 개발자 도구를 통해서 answer값을 바꿔볼까 합니다.
어찌됬든 아까 입력폼에서 값을 넘기는거니, SQL인젝션문을 적어보겠습니다.

answer의 값을 위처럼 바꿔보았습니다.
제가 한 것 처럼 주석을 미들바 ( - )로 작성하시는 경우에는, 꼭 뒤에 공백문자가 하나 들어가야합니다.
--이후 공백없이 바로 문자가 붙을시 주석처리가 안되기때문이거든요.
저것때문에 조금 고생했던 기억이있습니다.
아무튼 저렇게 변조 후 입력폼에는 전 처럼 123을 입력해보겠습니다.
그랬더니...

짠! 해결입니다.
SQL문이 내부에서 어떻게 작성되어있는지는 모르겠지만..

문제해결 후에는 다음과 같이 출력되는걸 볼 수 있었습니다.
아마 select문에 name, answer, ip가 있고 where절에서 인젝션이 걸려서 다 출력된게 아닐까... 싶습니다.
where절을 통해서 SQL인젝션이 성공하면 solve되는 문제인것 같습니다.
개발자도구에서 값을 건들여서 전송한다는 아이디어가 안떠올라서, 조금 해맸던 문제네요.
'보안 > 워게임 (웹 해킹)' 카테고리의 다른 글
| Challenge - old-39 write up (0) | 2025.04.04 |
|---|---|
| Challenge - old-10 write up (0) | 2025.03.31 |
| Challenge - old-24 write up (0) | 2025.03.24 |
| Challenge - old-18 write up (0) | 2025.03.19 |
| Challenge - old-26 write up (0) | 2025.03.17 |