문제 바이너리 파일을 file 명령어로 확인해보면 64비트 실행파일임을 확인할 수 있다.
실행해보면 두 값을 더해주는 프로그램인 것 같다.
아이다로 열어서 헥스레이 기능을 이용하여 main함수를 확인하면 다음과 같다.
시스템 함수로 파이썬명령어를 실행하여 두 값을 더하고 있다.
)'; 으로 파이썬 명령어를 닫아주고 내가 원하는 다른 명령어를 실행시킬 수 있을 것 같다. 실행할 명령어를 작성한후 ;#을 붙이면 정상적으로 원하는 명령어를 실행하고 그 결과값을 볼 수 있다. #은 리눅스 쉘에서도 주석의 역할을 하기 때문에 #으로 시스템 함수에 들어가는 남은 파이썬 명령어를 주석처리하는 것이다.
ls명령어로 확인해보니 flag 파일이 있었고, cat flag 명령으로 flag를 확인할 수 있었다.
payload : )';cat flag;#
HackPack CTF 후기 : 푼 문제는 파이썬 코드를 닫고 원하는 명령어를 입력한 뒤 주석처리해서 이후 구문을 무시하여 원하는 명령어만 정상적으로 실행되도록 하여 풀었는데, 웹해킹을 공부할때 원하는 쿼리를 입력하고 주석으로 이후 구문을 무시한다는 점에서 기본적인 SQL Injection 과 비슷한 느낌을 받았다. 이 문제 외에 다른 문제들도 풀려고 시도해 보려 했지만 코드가 길어지고, 아직 포너블 기초밖에 공부가 되어있지 않다보니 꽤 오랜시간을 보고 생각나는 다양한 방법들로 구글링을 시도해 보았지만 역시 쉽지 않았다. 포너블 공부를 더 열심히 해야 겠다는 생각을 하게 되었고, 다양한 기법들을 공부해서 문제에 적용해야 겠다는 생각을 하게 되었다.
'Project H4C Study Group' 카테고리의 다른 글
[Project H4C][자작문제] rtl32 (0) | 2021.05.01 |
---|---|
[Project H4C] [UMDCTF 2021] Jump Not Easy (0) | 2021.04.19 |
[Project H4C][자작문제] login (0) | 2021.04.12 |
[Project H4C] C언어 코딩도장(15) (0) | 2021.04.11 |
[Project H4C][pwnable.kr] mistake (0) | 2021.04.09 |