본문 바로가기

분류 전체보기

[Grotesque] aeg 추석에 할 거 없어서 pwnable.kr에 접속해서 문제를 이것저것 보다가, 점수가 높기도 하고.. 재미도 있어보여서 aeg 문제를 열어봤는데, 이게 왠걸? angr을 써볼법하게 만들어져서 너무 좋았다. 예전부터 angr 봐야지봐야지 했는데 사정으로 인해(쿠키런도 해야되고 테라리아도 해야되고 운동도 해야되고 피아노도..롤도..) 하지 못했으니, 지금 기회될 때 공부해야지 싶었다. 이 문제는 angr을 쓰면 귀찮은 작업이 다수 해결된다. (안쓰면.. ㅎㅎ 안쓰고 푸는 것도 하나의 방법이지만, 권장하진 않는다) - 400명 이상 푼 문제는 PoC 코드를 공개하겠다. - 이 글에는 문제 풀이, 힌트 등이 있으니 실력 증진을 원하는 분들은 충분히 삽질한 후 읽어주시길 바란다. 1. 코드흐름 ===========.. 더보기
[Grotesque] aeg (2020.10.03 클리어) 추석에 맛난거 먹고 띵가띵가 놀고.. 방에서 굴러다니다가 할 게 없어서 pwnable.kr에 접속했다. 뭐풀지.. 이것저것 깔짝깔짝 보다가 aeg가 점수가 좀 높기도 하고 재밌어보여서 문제를 열어봤다. nc pwnable.kr 9005를 입력하니까, 뭔 10초 안에 페이로드를 짜서 달라는데, 그 뒤에는 수천?? 개의 문자를 주더라. 머리에 ????????? 가 수백개 떴다가 aeg의 맨 위 문장에서 base64 encoding 되어있다는 글을 보고, 바로 복호화한 후 압축을 풀어봤다. hmm.. strip 옵션이 적용됬나.. 싶다가도 plt 주소가 보이는걸 보면 그건 또 아닌 것 같고. (사실 오래되서 strip가 정확히 뭘지우는지 기억안난다) 여튼 main entry 주소가 안보이니, readelf 도.. 더보기
책을 써보고 싶은데.. 나의 버킷리스트 중 한가지는 유튜브 혹은 뭐라도 좋으니 해킹 강의를 해보고 싶은 것이었다. 그리고 또 한가지는 어플리케이션 해킹 원리를 책으로 써보고 싶었다. 누가 봐도 알아보기 쉽게 그림을 그려가면서 해킹원리를 설명하는 것이었고, 이를 통해 국내에 실력있는 수많은 화이트해커가 양성되길? 바라는 점도 있었다. 최근 강남의 모 학원에서 해킹 강의/특강 제안을 받아서 약간 들떠있었다. 내 버킷리스트 중 하나였으니까.. 결과적으로 제안을 받아들이지 못했다. 회사 규정에 의하면 '영리 목적의 사설 교육시설에서 강의 금지' 라나.. ㅠㅠ 규정을 알아보기 전까지 목차는 어떻게 잡지? 어떻게 강의할까? 영상 편집은 어떻게 해야 깔끔할까? 별 고민을 다했었는데, 규정을 알아보고 나니 한숨만 나오더라. 뭐 어쩔 수 없지.. 더보기
[Rookies] crypto1 문제 포인트만 잡고나면 쉬운데, 암호를 잘 모르는 나에게는 약간 접근하기 힘든 문제였다. 포인트 잡는데에 4시간?? 5시간?? 정도 헤맸던 것 같다. crypto1 문제는 CBC 블럭 암호의 운용방식을 잘 알아야 풀 수 있다. - 400명 이상 푼 문제는 PoC 코드를 공개하겠다. - 이 글에는 문제 풀이와 답이 있으니, 실력 증진을 원하는 분들은 충분히 삽질한 후 읽어주시길 바란다. 1. 코드흐름 ==================================================== server.py 부터 보자. AES128_CBC(msg)함수는 client로부터 날아온 패킷을 받아와서 AES128_CBC mode로 복호화한다. (이 때 사용되는 키, IV(Initialization Vector.. 더보기
TypeError: Unicode-objects must be encoded before hashing python3에서 import hashlib의 hashlib.sha256 함수를 이용하는 중에 "TypeError: Unicode-objects must be encoded before hashing " 이런 에러가 뜨는 경우가 있는데, 이는 hashlib 사용 시 byte 형태가 필요해서 에러가 생긴다. python3의 문자열은 기본적으로 unicode이며, 문제 해결을 위해 encode('utf-8')을 붙여주면 된다. 예시코드: string = "test" hashlib.sha256(string.encode('utf-8')).hexdigest() 더보기
[Rookies] note 생각보다 어렵지 않은 문제이다. 하루 깔짝하고 풀었는데, 제일 시간이 오래걸렸던 부분은 ..문제 서버에다가 문자열 송수신하는 중에 자꾸 파이썬 EOF Error가 난다 ㅡㅡ; 내가 코드를 못짜는건지 아니면 서버가 불안정한건지 모르겠다. 문제 설명을 보면 mmap() 함수에 보안패치를 했고, ASLR 세팅을 안했다고 한다. 핵심적인 부분이니 기억해두자. 이제 문제를 보자. - 아참. 400명 이상 푼 문제는 exploit 코드 공개하겠다. - 이 글에는 문제 풀이와 답이 있으니, 실력 증진을 원하는 분들은 충분히 삽질한 후 읽어주시길 바란다. 1. 코드흐름 ==================================================== 문제의 핵심인 mmap_s 함수부터 보겠다. random.. 더보기
[Toddler] fd 요즘 플스4 파이널판타지7 리메이크 즐긴다고 문제를 안 풀고 있는데; 뭐라도 써야지 싶어서 쉬운 문제를 풀어봤다. (파이널판타지7 개꿀잼 ㅜㅠㅠㅠ) 너무 쉽다.. 무려 29458명이 푼 문제이다. 와우! 이거 못풀면 해킹은 꿈도 꾸지 말라는 것 같다. 1. 코드흐름 ==================================================== 단순하다. 1. argv 값을 하나라도 넣어주지 않았다면 "pass argv[1] a number"가 출력된후 프로그램이 종료된다. 2. argv[1]에 입력한 값을 정수로 바꾼후 - 0x1234 한 뒤 fd에 넣는다. 3. read 함수를 통해 buf 배열에 우리가 입력한 값을 넣어준다. 4. buf에 들어간 값과 LETMEWIN을 비교한 후, 값.. 더보기
[Grotesque] asg 쓸까말까 고민하다가.. exploit 코드 전체는 공개안하더라도, 일부분 공개하면서 설명하는건 괜찮지 않을까?? 하고 글을 쓴다. Write up 작성 목적은 pwnable.kr 점수 올리라는게 아닌, 순수 방문자의 공부에 도움이 되도록 방향을 잡아주기 위함이다. 이 글을 시작으로 write up 작성 기준, 틀 등을 마련하여 향후 관련 게시글에도 이를 적용할 수 있도록 잘 써야겠다 싶다. ========================================================================================== 글을 시작하기에 앞서 당부 드린다. 이 글은 수많은 힌트, 풀이 방법이 포함되어 있으므로, 본인의 실력 증진을 원한다면 삽질을 충분히 한 뒤에 글을 읽어주길.. 더보기
[Grotesque]asg (2020.08.09 클리어) toddler 문제인 asm에서 "어셈 짤줄 알아? 그럼 asg 한번 도전해보던가." 라는 도전욕구를 불태우는 문구를 보고 나서 곧바로 asg 문제를 풀게 되었다. 저번주엔 내내 출장이라 볼 시간이 없었고.. 어제 광주와서 어디 나가지 않고 방에 콕 박혀서 문제를 봤다. asg.c 코드를 잠깐 보고나서 'asm이랑 비슷하네??? 뭐.. 하루면 풀지 않을까??' 라는 가벼운 생각을 했다가 이 문제를 저녁 11시까지 붙잡게 됐고, 결국 못풀었다. ㅋㅋㅋㅋㅋㅋㅋ 오늘 대전가서 시간되면 문제를 이어서 풀어야지 싶다. 어제 저녁 마지막으로 돌린 파이썬 코드, 쉘스크립트이다. " asm이랑 차이점은 쉘코드 필터링하고.. mmap 주소가 랜덤으로 지정되네? 사용자가 올리는 쉘코드도 랜덤 offset에 따라 다르게 옮.. 더보기
SANE 연구실 소개 고려대학교 정보보호대학원의 저희 연구실 SANE(Security Assessment aNd Engineering lab)에서 홍보 영상을 만들었네요~ 많은 관심 부탁드립니다 ㅎㅎ https://youtu.be/Vh8Z3JfbrZ0 더보기