[DreamHack] [web] [beginner] command-injection-1 풀이

2024. 11. 13. 15:14Information Security 정보보안/DreamHack

728x90

배울내용 

dreamhack,

web hacking,

개발자도구,

dreamhack 풀이,

dreamhack command-injection-1 문제,

dreamhack web 풀이 ,

BurfSuite  

 

 

문제

 

 

 


제목으로 봐서는 command injection 을 하라는것같다. 만약 잘 모르겠으면 아래의 링크를 갔다 오도록 하자

 

Command Injection 에 대해 알아보러가기 

https://sarimus.tistory.com/139

 

시스템 해킹실습 - 2. Command Injection 명령어 삽입

배울내용: 시스템 해킹단위공격 기술Command Injection 발생 원리Command Injection 실습 Command Injection  방지 방법메모리 취약점커멘드 인젝션 이란? 백틱 인젝션     취약점 종류중 논리취약점중 하

sarimus.tistory.com

 

 

 

 

우선 이런창이 뜨는데 place holder에  8.8.8.8  있으니 입력 해보고 Ping! 버튼을 눌렀더니 아래와 같이 나왔다 

 

 

 

 

이렇게 나왔고 그러면 명령어뒤에 ";" 를 붙이고 새 명령어를 이어붙이면 가능할것같았다

 

 

클릭하려하면 형식 마춰달라고 뜨는데 단순 HTML 태그에서 패턴을 지우면 해결할수있다 

만약 여기서 해결이 안되면 Proxy 를 써야한다

 

 

 

안된다 

 

아마 코드를 다시 확인해보자

 

 

 

f 'ping -c 3 "{host}"' 로 되어 있는데 host 안에 입력한 값이 들어가게 된다 

그런데 앞에 쌍따옴표 때문에 에러가 뜬 모양이다 그러면 아래에 것을 8.8.8.8 뒤에 써서 아래와 같이 써준다

8.8.8.8 "; ls "./

 

실제 넣는값은 위에지만 코드에서 받아들이는 것은 아래와 같다

 

 
ping -c 3 "8.8.8.8 "; ls "./"

 

말그대로 " 와 ; 를 적절히 쓰니 8.8.8.8 이라는 1번째 명령어 후 ";" 종료 특수문자하고 ls 라는 2번째 명령어를 쓸수있다.  

그러면 아래와 같이 나오게 되고 여러개 파일이 있는걸 알수있다 그리고 그중 flag.py 가 눈에뛴다  

 

 

 

파일을 확인하는 cat 명령어를 이용해 flag 값을 확인해보자 

그러나 아래의 방법은 뭔가 막혀있다 아마 Burf Suite 를 써서 Proxy로 접근해보자



방식은 위에 ls 했던 방식과 똑같이 해주면 된다 

#입력값 넣기전
f'ping -c 3 "{host}"' 

#입력값 넣었을때  
f'ping -c 3 "{8.8.8.8"; cat "flag.py}"'


#사용자가 8.8.8.8"; cat "flag.py처럼 host 값에 
#";와 같은 특수 문자를 포함하여 입력하게 되면, 전체 cmd 문자열은 다음과 같이 만들어집니다:

ping -c 3 "8.8.8.8"; cat "flag.py"

 

 

만약 패턴 검사하는게 막혀서 안되게되면 BurfSuite 로도 가능한데 방법은 아래와 같다  

BurfSuite 를 키고 Proxy 에서 intercet off 를 on 으로 바꾸고 브라우저를 열어서 아까와 같은걸 시도한다

 

 

 

 

그리고 호스트 8.8.8.8뒤에 아래의 것만 붙여주면 된다 

 

"; cat "flag.py

 

 

그러면 아래와 같이 성공플레그를 뛰울수있게된다. 

 

 

728x90