여러분 안녕하세요. POCI입니다.
이번 시간에는 Webhacking.kr의 3번 문제를 풀어보도록 하겠습니다.
1. 사이트 둘러보기
3번 문제에 들어가면 Puzzle이라는 글자와 함께 격자 형식으로 된 퍼즐판이 나옵니다.
그리고 오른쪽 하단의 5x5 부분을 클릭하니 클릭한 부분은 검은색으로 표시되는 걸 확인할 수 있습니다.
처음에는 지뢰 찾기 게임인 줄 알았으나, 지뢰 찾기로 풀기엔 너무 이상한 부분이 많았습니다.
그래서 다른 퍼즐형식을 찾아보니 노노그램이라는 퍼즐게임을 찾게 되었습니다.
https://namu.wiki/w/%EB%85%B8%EB%85%B8%EA%B7%B8%EB%9E%A8
숫자를 정해주고 그 숫자만큼 타일을 칠하는 퍼즐게임으로, 이러한 방식으로 타일을 칠해줍니다.
타일을 칠한 후, gogo 버튼을 누르면 이름을 쓰는 란이 뜹니다.
webhacking.kr의 아이디인 poci5003을 입력해봤습니다. 입력한 이름과 answer이라는 2진수 배열, ip 주소가 나옵니다.
다른 이름을 입력해도 name만 바뀔 뿐, answer와 ip의 값은 바뀌지 않습니다.
answer의 2진수를 10진수로 변환하면 22034783이 나오는데, 그건 답이 아니더라고요...
2. SQL Injection 공격
그래서 name에 SQL Injection 공격을 해봤습니다.
이것도 해답은 아닌 거 같습니다.
다른 값에다가 SQL injection 공격을 하기 위해서 Burp Suite를 사용합니다.
Burp Suite에 대한 설명은 다음 링크를 참고해주세요. https://poci.tistory.com/53
패킷을 보니 answer랑 id값이 넘겨지는 것을 볼 수 있습니다.
아까 id(name)에 SQL injection 공격을 했지만, 소용이 없었기 때문에 answer에 SQL injection 공격을 해봤습니다.
no hack이라고 뜨는 걸 볼 수 있습니다.
이 뜻은 answer에서 필터링 과정을 했다는 의미이고, 필터링을 했다는 것은 answer에 취약점이 있기 때문이겠죠???
or이 필터링에 걸렸는지 확인하기 위해 ||를 사용해봤지만, 똑같이 no hack이 떴습니다.
이번에는 =이 필터링에 걸린 건가 싶어서 1=1 대신 1을 넣어봤습니다.
name이 admin이 되면서 answer가 2진수가 아닌 문자로 나온 것을 확인할 수 있습니다.
answer의 값을 Auth에 넣었더니 클리어했다는 메시지가 뜹니다.
이번 강의는 여기까지입니다.
3번 문제도 SQL Injection을 이용한 문제였습니다. 대신 필터링이 되어있기에 필터링을 우회할 수 있는 방법을 찾는 것이 문제에 핵심이었다고 생각합니다.
오늘도 수고하셨습니다.
정리
- 퍼즐을 풀고 name을 입력하는 사이트로 이동
- Burp Suite를 이용하여 패킷을 갈취한 후 answer의 값에 SQL Injection 공격을 시행
강의가 유익하셨거나 마음에 드셨으면 댓글과 좋아요 부탁드립니다.
궁금하신 점이나 질문은 댓글이나 메일 남겨주세요.
'Write Up > webhacking.kr' 카테고리의 다른 글
Webhacking.kr 문제풀이_Part6_5번 문제 (0) | 2019.07.04 |
---|---|
Webhacking.kr 문제풀이_Part5_4번 문제 (0) | 2019.07.02 |
Webhacking.kr 문제풀이_Part3_2번 문제 (0) | 2019.06.24 |
Webhacking.kr 문제풀이_Part2_1번 문제 (0) | 2019.06.16 |
Webhacking.kr 문제풀이_Part1_회원가입 (0) | 2019.06.15 |