본문 바로가기

보안/PWNABLE

(79)
[Toddler's Bottle]->[codemap] 하....망할 엣지... 엣지의 용량 (buffer 오류)로 몇시간동안이나 삽질했네요...... 힌트로 준 0x403E65에 BP를 걸고 local win 32 debuger로 돌린후 일시정지하고 코드맵을 킨 후, 프로그램을 모두 동작시켜 주면 DB에 BP를 기준으로 자원들이 저장됩니다. 그리고 쿼리를 날려서 읽어오면 되요!! 2번째로 큰 chunk를 보면 roKB~~~가 있고 3번째로 큰 chunk를 보면 2ckbn~~~이 들어있습니다. 순서대로 입력해주면 클리어!!!!
[Toddler's Bottle]->[coin] 랜덤으로 N과 C가 주어지면N의 수안에서 counerfeit coin을 찾는 거네요.30초 안에 찾아야하는데 찾아야하는데 스크립트를 짜는게 나을 듯합니다.(nc 0 9007로 내부에서 연결해도 된다네요!) 입력값에 대한 retun을 체크하여 (9인것만) 추가시켜주면 됩니다.소켓 프로그래밍 해야하네요... 코드 참고 - http://pastie.org/pastes/10861294/text
[Toddler's Bottle]->[cmd2] /만 쓸수 있으면 푸는데 /를 못쓴답니다. 삽질을 한 결과, echo는 내부적으로 \57이 “/“로 변환된다는걸 알게 되었습니다.ㅠㅠ (삽질 만세)$(echo “\57”)bin$(echo “\57”)cat flag 를 하면 되겠네요 flag는 그냥 환경변수로 등록해주면 되겠습니다.
[Toddler's Bottle]->[uaf] 첫번째 분기분에 break를 걸고 쭉보면 0x0401570에 0x040117a가 있고0x040117a는 give_shell() 함수입니다. 그리고 rdx=rax+8하고 함수를 호출하네요 그렇다면 rax = 0x041578을 호출하는 것입니다.!! 소스 코드에 2번 분기문을 활용하여 값을 넣으면됩니다. gdb로 분석하면 값이 제가 할당한 만큼 메모리에 할당됩니다. exploit!!