반응형 Security82 pwnable.kr [Toddler's Bottle]->[coin] [coin] 랜덤으로 N과 C가 주어지면 N의 수안에서 counerfeit coin을 찾는 거네요. 30초 안에 찾아야하는데 찾아야하는데 스크립트를 짜는게 나을 듯합니다. (nc 0 9007로 내부에서 연결해도 된다네요!) 입력값에 대한 retun을 체크하여 (9인것만) 추가시켜주면 됩니다. 소켓 하나 짜줍니다. 코드 참고 - http://pastie.org/pastes/10861294/text 2021. 8. 11. pwnable.kr [Toddler's Bottle]->[cmd2] [cmd2] /만 쓸수 있으면 푸는데 /를 못쓴답니다. 삽질을 한 결과, echo는 내부적으로 \57이 “/“로 변환된다는걸 알게 되었습니다. $(echo “\57”)bin$(echo “\57”)cat flag 를 하면 되겠네요 flag는 그냥 환경변수로 등록해주면 되겠습니다. 2021. 8. 11. pwnable.kr [Toddler's Bottle]->[uaf] [uaf] 첫번째 분기분에 break를 걸고 쭉보면 0x0401570에 0x040117a가 있고 0x040117a는 give_shell() 함수입니다. 그리고 rdx=rax+8하고 함수를 호출하네요 그렇다면 rax = 0x041578을 호출하는 것입니다.!! 소스 코드에 2번 분기문을 활용하여 값을 넣으면됩니다. gdb로 분석하면 값이 제가 할당한 만큼 메모리에 할당됩니다. 2021. 8. 11. pwnable.kr [Toddler's Bottle]->[cmd1] [cmd1] 우선 putenv로 외부에서 환경변수 값을 변경할 수 없게 되어있다. 하지만 절대경로를 사용하면 될듯하다. 또한 필터링을 통해 argv[1]을 체크한다. 그렇다면 cat flag 를 절대경로로 환경변수에 올려서 환경변수자체를 인자로 주면 될듯하다. 2021. 8. 11. pwnable.kr [Toddler's Bottle]->[lotto] [lotto] coin에서 확인해야할 부분은 char형 으로 입력값을 받고 submit도 char형 배열입니다. 또한 lotto[i]==submit[j] 입니다. submit[i]가 아닙니다. 입력한 값이 동일한 값으로 6개가 들어간다면 하나만 동일한 값이 있어도 매칭이 됩니다. 하지만 여기서 char형 이므로 10진수를 바꾼 값을 넣어야한다 33~45일 것입니다. 몇번 반복하니 플래그가 나타납니다. 2021. 8. 11. pwnable.kr [Toddler's Bottle]->[memcpy] [memcpy] gcc 로 컴파일하여 gdb로 보면 Segmentation fault가 뜹니다. Segmentation fault가 나는 부분이 movntps입니다. 내용에 대해서 조사하니 movntps는 메모리가 정렬이 되어야합니다. 특정 메모리에 저장하는데 16배수로 정렬이 되어있어야 하는 거군요! 그렇다면 dest가 가르키는 주소가 정렬 되어 있어야 한다는 뜻 같습니다. 2021. 8. 11. 이전 1 2 3 4 5 6 ··· 14 다음 반응형