webhacking.kr 3번 문제이다
우선 문제 링크를 타고 들어가면 위와같은 네모로직이 나온다
뜬금없이 네모로직이 나와 당황했고, 혹시 여기에 무언가 숨겨진 것은 아닌지 일단 눌러보다가
오랜 삽질 끝에 그냥 문제를 풀고 gogo를 눌렀다
앞에 네모로직이 왜있었을까... 에 대해서 고민해보니
URL에 GET방식으로 아까 네모로직 결과에 대한 정보가 있음을 알 수 있었다
그러나 아직 왜 있는지는 모르겠다.
우선 무엇을 해야할지 모르니 "abcabc"라는 문자열을 넣어보자
abcabc와 네모로직 정보, 아이피주소가 데이터베이스에 올라가는 것을 확인할 수 있다.
name을 이용한 인젝션 공격을 진행하면 될 것 같았지만 풀리지 않았다.
소스를 보니 hidden 타입으로 네모로직 체크정보를 보내고 있다
id와 answer을 보내는데 id에서 인젝션을 실패했으니 answer에 중점을 두고 살펴보았다.
어디서부터 어떻게 건드려야할지 몰라 위의 사진처럼 맨 앞비트를 1이 아닌 0으로 바꾸어보았다.
결과가 나오지 않았다. 쿼리 오류이거나 조건에 맞지 않았던것 같다.
answer의 데이터에 반응하는 것을 보아 이 데이터에 중점을 두면 좋을것 같았다
우선 잘 모르겠으니 0부터 넣어보자
위와같이 처음 페이지로 돌아가버렸다....
아직도 잘 모르겠다
0을 넣어보았으니 1도 넣어보자
1은 정상적인 데이터로 인식하는듯 하다
여기서 막혔던 점이 도대체 이 문제는 무엇을 목적으로 하는가? 에 대한 답이었다.
고민 끝에 페이지에 출력되는 데이터는 answer에 대한 값임을 알 수 있었다.
예상되는 출력 쿼리문은 다음과 같다.
select * from table_name where answer=$_POST[answer];
정확한 쿼리문이 아닐 수 있겠지만
위와같이 추측해볼 수 있다.
즉, 현재 보여지는 페이지는 answer에 한정된 데이터를 뜻한다.
데이터베이스 전체의 정보를 출력하는 것이 목표라고 생각했다.
answer 부분을 거짓으로 만들어 조건 자체가 참이 되게 만들었다
no hack으로 공격을 필터링 한 것을 보아
접근 방법이 틀리지 않은것 같다.
or을 ||로 필터링해서 공격해보았다.
다음과 같이 localhost에서 admin이란 이름으로 관리자가 flag를 숨겨놓은것을 확인할 수 있었다
해당 answer를 Auth 페이지에서 인증하면 끝!
'Wargame > webhacking.kr' 카테고리의 다른 글
[Webhacking.kr]10번 (0) | 2018.07.06 |
---|---|
[Webhacking.kr]52번 (0) | 2017.08.01 |
[Webhacking.kr]32번 (0) | 2017.08.01 |
[Webhacking.kr]33번 (0) | 2017.08.01 |
[Webhacking.kr]47번 (0) | 2017.07.31 |