
문제 발생
교내 자율동아리를 위한 CTFd 서버를 구축하다가 생긴 일이다.
1A cool CTF platform from ctfd.io 2 3Follow us on social media: 4Click here to login and setup your CTF
예전에는 기본 배너를 admin panel > config > theme 에서 없애줄 수 있었는데 업그레이드가 되며 안되는듯 하다.
결국 소스코드를 분석하여 없애는 방법을 찾아냈다.
grep 으로 문자열 검색
1grep -r 'to login and setup your CTF' .
"to login and setup your CTF" 라는 문자열이 포함된 파일을 검색한다.
./CTFd/views.py 의 index 변수를 수정해도 없어지지 않았다.
바로 아래에 ./CTFd/ctfd.db 파일에도 해당 문자열이 있다는데 sqlite3를 이용해 열어보자.
sqlite table 수정
1sqlite3 ctfd.db
1.schema 2SELECT * FROM pages;
11||index|<div class="row"> 2 <div class="col-md-6 offset-md-3"> 3 <img class="w-100 mx-auto d-block" style="max-width: 500px;padding: 50px;padding-top: 14vh;" src="/themes/core/static/images/posts/logo.png?d=1d53abea" /> 4 <h3 class="text-center"> 5 <p>A cool CTF platform from <a href="https://ctfd.io">ctfd.io</a></p> 6 <p>Follow us on social media:</p> 7 <a href="https://twitter.com/ctfdio"><i class="fab fa-twitter fa-2x" aria-hidden="true"></i></a> 8 <a href="https://facebook.com/ctfdio"><i class="fab fa-facebook fa-2x" aria-hidden="true"></i></a> 9 <a href="https://github.com/ctfd"><i class="fab fa-github fa-2x" aria-hidden="true"></i></a> 10 </h3> 11 <br> 12 <h4 class="text-center"> 13 <a href="admin">Click here</a> to login and setup your CTF 14 </h4> 15 </div> 16</div>|0|||markdown
이렇게 생긴 table이 나온다.
1CREATE TABLE pages ( 2 id INTEGER NOT NULL, 3 title VARCHAR(80), 4 route VARCHAR(128), 5 content TEXT, 6 draft BOOLEAN, 7 hidden BOOLEAN, 8 auth_required BOOLEAN, 9 format VARCHAR(80), 10 PRIMARY KEY (id), 11 UNIQUE (route), 12 CHECK (draft IN (0, 1)), 13 CHECK (hidden IN (0, 1)), 14 CHECK (auth_required IN (0, 1)) 15);
pages table 의 scheme 은 위와 같으므로 id가 1인 row 중에서 content 값을 수정하면 되겠다.
1UPDATE pages SET content="aaaaa" WHERE id=1;
다시 CTFd 서버를 켜면...
기본 banner 가 사라졌다!
참고로 위 테마는 https://github.com/chainflag/ctfd-neon-theme 이곳에서 다운받았다.