Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 소프트웨어 개발보안 경진대회
- 메모리 포랜식
- Forensic 절차
- 방명록 만들기
- JSTL
- frontend
- reversing.kr
- webhacking 처음
- PyAmdecoder
- 행정지역 DB
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- SessionAttribute
- DBMS
- jsp
- 네이버 인턴
- Database
- 정보보호병 후기
- 소개딩
- restapi
- 인턴 지원
- riceteacatpanda
- spring
- 인턴 후기
- 동읍면 DB
- Django
- EER
- mysql
- react
- Layered Architecture
- 3단계 지역 DB
Archives
- Today
- Total
웹찢남
Webhacking.kr Update!! 본문
드디어 Webhacking.kr이 업데이트를 했다.

새로운 문제가 업데이트 됐고

랭킹 페이지가 생겼다.
조만간 문제좀 다시 풀어서 ranking에 이름좀 올려 놔야겠다...
업데이트 기념으로 오랜만에 감 좀 찾으려고 한 문제만 풀어봤다.
NOTSQL 문제를 풀어봤는데 아무래도 writeup이 아직 안풀려서 나도 풀수는 없지만 조금만!

일단 no=1,2로 귀여운 고양이 사진을 불러온다. 귀엽다
코드를 보면 아래에 no를 q라는 쿼리를 통해 값을 받아와 처리한다.
function getQueryVar(variable) { var query = window.location.search.substring(1); var vars = query.split('&'); for (var i = 0; i < vars.length; i++) { var pair = vars[i].split('='); if (decodeURIComponent(pair[0]) == variable) { return decodeURIComponent(pair[1]); } } } if(!getQueryVar("no")){ q = `query{ view{ no, subject } }`; xhr = new XMLHttpRequest(); xhr.open("GET", "/view.php?query="+JSON.stringify(q).slice(1).slice(0,-1),false); xhr.send(); res = JSON.parse(xhr.response); for(i=0;i<res.data.view.length;i++){ board.innerHTML += `<a href=/?no=${res.data.view[i].no}>${res.data.view[i].subject}</a><br>`; } } else{ q = `query{ view{ no, subject, content } }`; xhr = new XMLHttpRequest(); xhr.open("GET", "/view.php?query="+JSON.stringify(q).slice(1).slice(0,-1),false); xhr.send(); res = JSON.parse(xhr.response); v = res.data.view; try{ parsed = v.find(v => v.no==getQueryVar("no")); board.innerHTML = `<h2>${parsed.subject}</h2><br><br>${parsed.content}`; } catch{ board.innerHTML = `<h2>???</h2><br><br>404 Not Found.`; } }
그럼 view.php에 가보자. 아래처럼 대충 쿼리에 아무거나 넣으니 GraphQL이라는 정보를 얻었다.

여기부터는 GraphQL injection을 찾아보고 그 안의 정보를 사용하며 문제를 풀면된다.
이 문제를 통해 GraphQL을 접해본적이 없었는데 좋은 경험이 된것같다.
Comments