level54[old]

2022. 3. 24. 22:48Site/Webhacking.kr

level54에들어갔더니 이상한 문자가 계속바뀌고 결국에는 ?끝납니다

소스코드를 보겠습니다

x.open('GET'. '?m='+i, false); // get방식으로 m에다 i를 더함, false->요청동기처리[서버응답받을때까지기다림(순차적)] <-> true[요청비동기] cf) 만약 비동기방식이라면 flag값이 복불복임...

x.send(null); //요청전송함

aview.innerHTML=x.responseText; // 서버의응답화면에출력

i++; i값증가

if(x.responseText) setTimeout("answer("+i+")", 20); 서버에응답이있다면은 answer함수에 i값을넣도 0.02초후 실행

if(x.responseText=="")  aview.innerHTML="?"; 서버응답이없다면 ?저장

setTimeout("answer(0)", 1000); //1초후 answer함수실행

 

개발자도구 -> 네트워크를 확인

변수m의 값이 새롭게 업데이트되는 것을 확인했습니다

?m=0번부터 ?m=40번까지의 값의 값을 적어주었습니다

FLAG{a7981201c48d0ece288afd01ca43c55b} 가 되네요

이값을 auth에 입력하면 클리어입니다

cf)

void open('Http Method', 'Server URL', '비동기 통신 유무') : Http Method에 GET 또는 POST를 정의하여 통신 방식을 정하고 통신 방식에 따라 Server URL에 쿼리스트링 방식으로 데이터를 전달한다. 3번째 인자가 TRUE이면 비동기 통신, FALSE이면 동기 통신

void send(content) : 실질적으로 요청을 서버로 보낸다. 요청이 비동기이면 이 메소드는 바로 리턴되지만 요청이 동기이면 서버에서 응답을 받을때까지 계속 대기함. content 에 값을 넘기고싶으면 -> open() 메소드는 반드시 POST 로 설정, GET 방식으로 요청하려면 -> null 을 설정

innerHTML : 내부 HTML 코드를 JAVAScript 코드에서 변경가능함

responseText : 서버에 요청하여 응답으로 받은 데이터를 문자열로 반환

 

reference check : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=redeyeant&logNo=100057590653

'Site > Webhacking.kr' 카테고리의 다른 글

level32  (0) 2022.03.28
level6[old]  (0) 2022.03.25
level36[old]  (0) 2022.03.24
level38[old]  (0) 2022.03.24
level23[old]  (0) 2022.03.23