본문 바로가기
정보보안/wargame

[webhacking.kr] challenge(old). old-03

by 민-Zero 2020. 1. 27.

3번 문제에 들어가게 되면 제일 처음 만나게 되는 화면이다.

아무거나 선택하고 눌러보면 굉장히 복잡한 url과 함께 No!라는 문구가 출력되고 다시 Nonogram으로 돌아가게 된다.

 

해당 페이지의 소스를 보게 되면 url에 보이는 _1, _2와 같은 값들이 보이고 해당 값을 1로 바꾸어서 보내보면 똑같이 No! 를 출력하는 것을 확인할 수 있다. 여기서 한참 고민했지만 그냥 해당 네모네모로직을 풀어서 solved로 제출하면 되는 것이었다. (내가 눌러서 검은색으로 변한 칸에 해당하는 변수의 값이 1로 변경되는 것이었다.)

해당 모습이 퍼즐을 푼 모습이고 해당 퍼즐을 풀게 되면 

이와 같은 화면을 만날 수 있다.

이름을 입력하라고 해서 이름을 입력하게 되면 name에 내가 입력한 값이 출력되고 answer은 2진수처럼 생긴 숫자가 자동으로 들어가 있으며 ip로 임의의 ip주소가 출력되는것 같다.

해당 페이지의 정보를 확인해보기 위해 소스코드를 확인해 보면 input의 type이 hidden으로 설정된 answer가 위에서 확인한 2진수 처럼 생긴 자동으로 들어가 있던 값을 가지고 있는 것을 확인할 수 있다. 그리고 우리가 입력하는 값은 text type으로 id라는 곳에 전달된다.

그럼 여기서 answer의 value값을 변경한 뒤 전송하게 되면 어떤 결과가 발생하는지 확인해 보았다.

value에 1이란 값으로 변경하여 제출하면 answer의 값이 변경되어 출력되는 것을 확인할 수 있다.

answer에 admin의 ID, PW가 출력되게 해야 하나 해서 해당 value에 비정상적인 값을 넣게 될 경우를 확인해 보았다. 

select문을 이용하여 접근을 시도하니 No Hack이라는 팝업창을 만났다. 따라서 answer의 value를 통해 sql injection을 수행하는 것이 맞는 방향이라고 확인할 수 있었다.

임의로 여러 True값을 넣어보려고 하는 중 첫 번째 1' or '1'='1 을 시도하자마자 해당 문제가 풀리는 것을 확인할 수 있다. 이미 한번 풀린 다음에 다시 풀기 때문에 위와 같은 팜업창이 뜬것이다.

댓글