Wargame/Web

[Dreamhack] command-injection-1

월루이 2022. 6. 9.

문제

 

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

댓글