정보보안/DreamHack

[Wargame]blind-command(web)

b1ackhand 2022. 2. 6. 15:14

이 문제를 풀어보려고 했다.

 

다음과 같은 창이 나와 ?cmd= "" 에 실행 될거라고 생각했다.

 

오류가 나지는 않아 코드를 열어보았다.

 

코드를 보면 요청 방식이 GET이면 안된 다는 것 같았다.

하지만 어떻게 요청방식을 바꾸는지 몰라서 답을 보게 되었다.

결과적으로는 요청방식을 바꾸는 것 뿐만아니라 출력하게 만드는 것도 문제였던것이다.

 

BurpSuite와 Curl을 이용해서 위 문제를 해결 할 수 있었다.

먼저 GET /?cmd=ls 였던 이부분을 BurpSuite에서 Intruder 기능을 써서

GET을 OPTIONS로 바꿔 GET외에 무슨 요청이 가능한지 알아보았다.

 

Allow : GET, OPTIONS, HEAD 라고 되있는걸 보니 HEAD로 요청을 보내면 필터링에 걸리지 않을 것이다.

 

curl과 dreamhack의 RequestBin을 활용하여 다음과 같이 보내서

 

Request Bin에서 ls-al이 실행된 결과를 볼 수 있었다.

url에 입력한후 BurpSuite에서 GET요청을 HEAD요청으로 바꿔줘야한다.

 

마찬가지로 cat flag.py를 해서 결과를 얻을 수 있었다.

 

고찰 : 

방법론은 생각해도 아직 실행할 수 있는 구현력이 부족한 것 같다.