dalgorithm
달공의 개발기
dalgorithm
전체 방문자
오늘
어제
  • 분류 전체보기 (170)
    • Back-end (0)
    • Java (11)
    • 자료구조 (7)
    • Network (31)
    • Database (9)
    • Baekjoon Online (24)
    • 클라우드 (6)
    • Android (15)
      • Kotlin (14)
    • AI (27)
      • Machine Learning&Deep Learn.. (27)
    • Web (23)
      • Webhacking (17)
      • WebProgramming (6)
    • 기술면접 (1)
      • JAVA&자료구조 (0)
      • Spring (0)
      • 컴퓨터구조&운영체제 (0)
      • 네트워크 (0)
      • 데이터베이스 (0)
    • CTF 스터디 (15)
    • 대외활동 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • CTF
  • 데이터베이스
  • db
  • 침입탐지
  • 네트워크
  • 코드리뷰
  • 자료구조
  • 웹해킹
  • python #백준
  • kotlin
  • java
  • Guacamole
  • 딥러닝
  • 자바
  • 인공지능
  • 클라우드
  • cs
  • 포너블
  • 머신러닝
  • gcp

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dalgorithm

달공의 개발기

[pwnable.kr] 15번_cmd2 풀이
CTF 스터디

[pwnable.kr] 15번_cmd2 풀이

2021. 5. 17. 23:33
728x90

포너블 15번 cmd2 문제를 풀어볼 것이다.

아빠가 나에게 시스템 명령 쉘을 사주셨다고 한다.

하지만 그는 그의 허락없이 노는 것을 막기 위해 어떠한 필터를 걸어놨다.

하지만 나는 내가 원할때 언제든 하고 싶다!

...라고 한다.

 

일단 서버에 접속해주었다.

이번엔 독특하게 이전 문제의 flag 값을 입력해야했다.

ls 명령어를 통해 cmd2, cmd2.c, flag 파일을 확인하였다.

cmd2 실행이 안되었기 때문에 바로 소스코드를 출력했다.

 

cmd1과 filter 과정을 거치는 것은 동일해보인다.

이번엔 필터링을 하는 것이 =, PATH, export, /, `, flag로 늘어났따.

그리고 /가 포함되어 있기 때문에 와일드카드를 사용하는 것도 불가능해진 상황이다.

또한, 메인함수를 보면 환경변수를 초기화하는 것을 확인할 수 있다.

 

이를 해결하기 위해서는 문자열을 포함하지 않고 system 함수에 전달해야하는데

help 명령어로 써볼만한 명령어도 찾아보고 command로도 시도해봤는데, 풀리지 않았다.

 

결국 다른 사람의 라업을 보고 도움을 받았다.

환경변수가 초기화되고 있는 상황이기 때문에 bash의 read를 사용해야한다고 한다.

read 함수 명령어와 함께 입력 받는 프롬프트 상태가 되기 때문에 flag 파일을 읽으면 그대로 답을 출력할 수 있다.

 

 

 

728x90

'CTF 스터디' 카테고리의 다른 글

[pwnable.kr] 14번_cmd1 풀이  (0) 2021.05.17
[pwnable.kr] 13번_lotto 풀이  (0) 2021.05.12
[pwnable.kr] 12번_blackjack 풀이  (0) 2021.05.12
[pwnable.kr] 11번_coin1 풀이  (0) 2021.05.03
[pwnable.kr] 10번_ shellshock 풀이  (0) 2021.05.03
    'CTF 스터디' 카테고리의 다른 글
    • [pwnable.kr] 14번_cmd1 풀이
    • [pwnable.kr] 13번_lotto 풀이
    • [pwnable.kr] 12번_blackjack 풀이
    • [pwnable.kr] 11번_coin1 풀이
    dalgorithm
    dalgorithm

    티스토리툴바