문제
https://dreamhack.io/wargame/challenges/44/
command-injection-1
특정 Host에 ping 패킷을 보내는 서비스입니다. Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다. Reference Introduction of Webhacking
dreamhack.io
문제풀이
Ping 페이지를 클릭하면, 아래와 같은 화면이 뜨는데
command-injection문제니, host 뒤에 ls 명령어를 붙여보자.
'요청한 형식과 일치시키세요'란 에러가 뜬다 !
아마도 숫자 외에는 못 쓰게 하는 필터링이 걸려있나보다...
Burp로 패킷을 잡아본다.
(javascript 필터링을 할거니, ping 페이지 자체를 잡아주도록 하자.)
정규표현식으로 필터링이 걸려있는 것을 알 수 있다.
정규표현식 포스팅한 글 참고 😄
2022.06.06 - [language/javascript] - 정규 표현식(regular expression)
정규 표현식(regular expression)
1. 정규 표현식이란 ? (=정규식) 프로그래밍에서 문자열을 다룰 때, 문자열의 일정한 패턴을 표현하는 일종의 형식 언어이다. 정규 표현식은 문자열을 대상으로 패턴 매칭 기능을 제공하여, 반복
today-loui.tistory.com
필터링 부분을 지우고, 127.0.0.1 ; ls 을 넣어보니 아래와 같이 에러가 뜨며 따옴표안에 host 주소가 들어가는 것을 알 수 있다.
ping -c 3 "host"
그럼 ping -c 3 "host" ; "ls"가 실행될 수 있게 아래처럼 넣어보자.
아래와 같이 결과가 뜬다.
저기 아래 보이는 flag.py를 읽어서 flag를 알아내자.
ping -c 3 "host" ; cat "flag.py"가 실행될 수 있게 아래와 같이 넣어보자.
성공이다 🥹
'Wargame > Web' 카테고리의 다른 글
[Dreamhack]pathtraversal (0) | 2022.06.17 |
---|---|
[Dreamhack] image-storage (0) | 2022.06.13 |
[Dreamhack] proxy-1 (0) | 2022.06.09 |
[XSS-GAME] Level6 (0) | 2022.06.03 |
[XSS-GAME] Level5 (0) | 2022.06.02 |
댓글