SECURITY/pwnable 15

pwnable.kr 15. cmd2

main 함수부터 보자. delete_env()함수를 대뜸 실행한다. 이 아이는 뭐하는 아이잉고.. delete_env()함수는 바로 위에 나와있다. 현재 저장되어있는 환경변수를 모두 삭제하는 함수인가보다. 이 함수를 실행하고 PATH 바꿔주고,, filter함수를 실행하는데, ㅎ 이 함수는 cmd1에서 했던 filter에서 조금 더 추가된 모습을 하고있다. strstr()함수를 통해 "=", "PATH", "export", "/", "`", "flag" 문자열들의 존재를 확인한다. 일단 cmd1에서 했던 방법에서 /bin/cat 명령어를 사용하여 flag를 조회하였는데, 여기 cmd2에서는 '/'이 필터링이 되기 때문에 불가능하다. 그럼 어떻게 하란말이야!!!!!!!!!!!!!!!!!!!!!!!!!!!..

SECURITY/pwnable 2021.05.18

pwnable.kr 14. cmd1

cmd1.c 의 코드를 잘 살펴보겠다. main함수부터 보면, PATH를 /thankyouverymuch로 설정한다. 그리고 filter함수를 argv[1]인 아이를 매개변수로 전해주며 실행한다. 이 filter함수의 결과가 true(1)이면 프로그램 종료가 되고 그렇지 않으면(false, 0) system( argv[1] ); 명령을 실행한 후 프로그램 종료가 된다. 그렇다면 filter함수는 뭐하는 함수인가? filter함수에서, strstr함수는 매개변수로 들어온 아이(문자열)에서 "flag", "sh", "tmp" 이 3개의 문자열이 있을 경우 인덱스의 값을 리턴하지만, 존재하지 않을 경우, null갑을 리턴해주는 함수이다. 그런데 이 strstr함수의 리턴값이 0과 다를 경우, 즉 주어진 문자열..

SECURITY/pwnable 2021.05.18

pwnable.kr 13. lotto

cat lotto.c 중요한것은 play함수인데 눈빠지도록 play함수 코드를 살펴보자^^. 또 //calculate lotto score주석 이후의 코드를 보면, 루프문이 36번 돌게되는데, lotto[i]의 값이 submit[j]의 값과 같으면 match값이 1씩 올라간다. match값이 6이 될 경우 플래그가 출력된다. 만약 내가 submit배열에 111111을 넣으면 lotto배열에 1이 한개라도 있을 경우 match값이 6이 될 것이다. 로또 번호 하나만 맞추면 바로 끝나는 게임인듯하다. 일단 로또 번호를 int형이 아닌 char로 받는것이 이상하다. 무슨 연관이있을까? 구글링을 해보니 아스키 코드가 연관되어있는 것을 확인하였다. 내가 만약 1을 입력했을 경우 char로 인식되어지기 때문에 아스..

SECURITY/pwnable 2021.05.11

pwnable.kr 12. blackjack

난 저번 문제 coin1도 못풀었는데,,... 일단 주어진 url로 들어가 코드를 확인해보자. cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html 호기롭게 rules를 보는것을 생략하고 1누르고 바로 play. 역시안되겠군! 룰을 보자. 오,,,..^^ 카톡으로 강습받고 다시 왔다. 오 이겼다. 재밌다. 그만하고싶다. 그런데 도대체 뭐가 문제지? 하고 배팅보다 훨신 큰 돈을 배팅해보았다. 내가 갖고있는 돈보다 큰 돈인 $1000000000000을 입력했는데 별 말이 없다...! 다시 게임한다고 했더니 나보고 이렇게 말한다. 나 이겼는데? 너가 파산이잖아 돈ㄴ내놔 이개자식아 아무래도 이상하다. 주어진 링크에서 코드 보는데 눈..

SECURITY/pwnable 2021.05.11

pwnable.kr 11. coin1

ssh로 접속하는 문제가 아니다. nc로 접속해보겠다. 게임을 하자고 한다. 하기싫ㄷ 0 ~ N 범위의 동전에서 무게가 9인 가짜 동전을 찾는 문제였다. 정상적인 동전은 10의 무게를 가지고 있고 0~N 범위에서 무게가 9인 동전을 찾으면 문제를 해결하는 방식으로 되어있었다. 총 C번까지 시도 이후에 답을 입력하면 문제가 해결되었고 총 100개의 문제를 해결하게 되면 reward를 준다고 되어있었다. (해석은 dongdd.tistory.com/145 블로그) 흠 색다르다. 조금만 더 생각해보고 그때 블로그 글을 다시 수정하여 작성하도록 하겠다.

SECURITY/pwnable 2021.05.05