아주 간단한 웹해킹 문제
풀이 자체는 간단한데 시작점을 찾는게 조금 어려울 수 있는 문제였다.
엄밀히 말하면 해킹이라고 보기도 어려운 문제다.
문제 파일은 따로 제공되지 않고
문제페이지 주소만 제공된다.
해당 페이지에 접속해보면
Apache2 Ubuntu Default Page 인 It works! 페이지가 나온다.
이건 사용자가 만든게 아니라
Ubuntu 리눅스에 Apache 를 설치하면 기본으로 있는 페이지이다.
아무리 찾아봐도 이 페이지 외에 다른 페이지를 찾을 수 없었고,
이 페이지에서 뭔가를 찾아서 해결해야 하는듯 했다.
wget 명령어를 이용해 해당 페이지의 html 코드를 다운로드 받아봤다.
wget <웹페이지 주소> 형태로 리눅스 터미널에 입력하면 된다.
index.html 의 내용을 천천히 보다보니
특이한 부분이 눈에 띄었다.
html 코드가 영어로 잘 써있는데
특정 글자들이 위처럼 A 형태로 인코딩된 모습으로 적혀있었다.
A 는 대문자 A를 의미한다.
Apache2 Ubuntu Default Page 에서
빨간 부분을 저렇게 써놓은 것이다.
이렇게 인코딩된 글자들을 모아서 하나로 합쳐보면 뭔가 나올것 같았다.
import requests
import re
url = 'http://web2.affinityctf.com/'
text = ''
r = requests.get(url)
text = re.findall("&#[0-9]{2,3}", r.text)
print(text)
print(''.join([chr(int(i.replace("&#",""))) for i in text]))
파이썬을 이용해 간단하게 코드를 짤 수 있다.
requests 를 이용해 해당 페이지의 html 코드를 가져오고,
가져온 html에서 정규식 표현을 이용해 &# 로 시작하고 0-9 숫자로 이루어진 2~3글자를 모두 뽑아낸다.
그런다음 맨 앞에 있는 &#를 없애주고,
int형으로 변경한 뒤 chr를 이용해 ascii 코드로 변경해주면
아까처럼 A 같이 써있던 글자들이 A 같은 형태로 바뀔것이다.
해당 코드를 실행시키면
플래그를 찾을 수 있다.
'CTF > 웹해킹' 카테고리의 다른 글
[Affinity CTF] True Content - 웹해킹 / Burp Suite / 자바스크립트 (59) | 2022.12.31 |
---|---|
[Affinity CTF] Path of Double-Dipping - 웹해킹 / Double Encoding (54) | 2022.12.29 |
[Cyber Security Rumble] Cyberwall - 웹해킹 / Command Injection (62) | 2022.12.19 |
[b01lers CTF] Programs Only - 웹해킹 / 헤더변조 / robots.txt (44) | 2022.11.24 |
[2020CCE] easy sqli / easy ssrf / robot - 웹해킹 (64) | 2022.10.13 |