https://dreamhack.io/wargame/challenges/44
input에 ip를 넣어 주면 ping을 보내 주는 사이트이다.
플래그가 flag.py에 있으므로 cat을 이용해 까 주려고 했지만, 요청한 형식과 일치 시키라고 뜬다.
개발자 도구를 열고 sources를 확인해 보면
<input type="text" class="form-control" id="Host" placeholder="8.8.8.8" name="host" pattern="[A-Za-z0-9.]{5,20}" required>
이런 코드가 있는 것을 볼 수 있다.
<input> 태그의 pattern 속성
pattern = "[A-Za-z0-9.]{5,20}"
[A-Za-z0-9.]: 대소문자 알파벳, 숫자, 마침표에 대응
{5, 20}: 최소 길이와 최대 길이를 나타냄. 따라서 입력 문자열의 길이는 5~20이 되어야 함
<input> 태그의 required 속성
- 폼 데이터가 서버로 제출되기 전에 반드시 채워져 있어야 하는 입력 필드를 명시
- 명시하지 않으면 자동으로 false 값을 가짐
input 태그의 pattern 속성으로 명령어가 입력될 수 없게 되어 있다.
이는 개발자 도구 -> console에서 document.designMode = 'on' 을 입력해 주고, elements에 들어가서 pattern 부분만 지워 주면 된다.
이렇게 코드를 수정해 주고 다시 입력으로 127.0.0.1; cat flag.py를 넣어 주면
다음과 같이 에러가 뜬다.
ping -c 3 "127.0.0.1; cat flag.py" 이런 식으로 커맨드가 들어가니 입력을 127.0.0.1"; cat flag.py" 이렇게 넣어 주면 될 것 같다.
플래그가 잘 뜨는 모습이다.
'드림핵 워게임' 카테고리의 다른 글
[드림핵/워게임] web-ssrf (0) | 2023.08.03 |
---|---|
[드림핵/워게임] Carve Party (0) | 2023.08.03 |
[드림핵/워게임] simple_sqli (0) | 2023.08.03 |
[드림핵/워게임] basic_exploitation_001 (0) | 2023.07.30 |
[드림핵/워게임] basic_exploitation_000 (0) | 2023.07.30 |