전체 글

하고 싶은게 많은 사람입니다. 게임 개발도 하고 싶고 보안 공부도 하고싶어요 앱개발도...
기본적으로 stack pivot 문제이다. 서버와 로컬의 환경이 많이 다른지 서버익스가 안되는데, 홈피에서도 로컬익스만 되면 dm달라고 하는 걸 보변 문제가 꽤 있었나보다. 일단 이 문제에서 배운점 . system 함수를 호출할 때, (이전에 호출한 적이 없을 시) 공간을 겁나 많이 먹는다. 따라서 스택 피벗 할때에도 공간을 넉넉하게 엄청 넉넉하게 주도록 하자. from pwn import* read_leave_ret=0x4008be pop_rdi_ret=0x400b03 puts_got=0x601020 system=0x4006c0 get_index=0x400978 puts=0x4006b0 bss=0x6010e0+0x100 leave_ret=0x400a4a p=process('./wishlist') p=r..
할 것도 없어서 HackCTF의 adult_fsb를 풀던 중, pwntool에서 제공하는 fmt로는 64비트에서 잘 안먹는거 같아서 하나 만들었다. 여러개의 주소를 덮어쓸 수 있으며, 페이로드 길이는 overwrite 하나당 72byte이다. got overwirte 같은 경우에는 4byte만 덮으면 되니, 48byte까지 줄일 수 있을 것이다. 사용방법은 pl=fsb64(8,**{str(free_hook) : one , str(initial) : 0x0068736162}) 이렇게 쓰시면 된다.
문제 오늘의 문제는 스택비벗 관련 문제이다. 이전과 달라진 점은 일단은 카나리가 없고, 대신에 Full Relro가 걸렸다는 점이다. 이 Full Relro가 적용이 되면 got영역에 쓰기권한이 사라지게 된다. bss 영역만 쓰기 권한이 생긴다. 그러면 bof로 승부를 봐야하는데.. 16byte로 대체 어떻게 공격을 할 수 있단 말인가?! STACK PIVOT? 그래서 등장한 것이 스택 피벗이다. 위에서 bss 영역에는 쓰기 권한이 아직 남아있다고 하였다. bss영역에 system 함수와 binsh의 주소를 잘 적어놓고, RIP를 bss 영역으로 옮겨준다면? 가능할지도 모르겠다! 이렇게 쓸 수 있는 공간으로 옮겨 들어가서 RTL Chaining을 하는 것을 스택피벗이라고 한다. 어떻게? 그런데 bss영역..
사실 이 글을 써도 되는지는 모르겠지만, 우리 학교 동아리 부원이 내 블로그를 볼 일은 없을 것이라 생각하고, 문제와 해설을 올려보자 한다. 만약 보신다면 살포시..! 뒤로가기를 눌러주십셔. 문제는 Format String 과 Bof 그리고 문제의 이름인 Checksum을 합쳐서 만들었다 . 하루만에 만드느라 힘들었다.. 보호기법은 Canary , NX, Partial RELRO를 걸어줬다. checksum도 문제이름이고, 함수이름에도 checksum이 많이 들어가 있는 걸 보니, checksum이 중요하게 작용하겠다. 일단은 기본적으로 dest라는 배열이 rbp-0x2C ~ rbp-0x18까지 차지하고, buf라는 배열이 rbp-0x18~rbp-0x4까지 차지한다. 두 배열은 크기가 20byte로 동일..
포맷스트링에 관한 것은 다른 곳에서 더 잘알려주기 때문에 따로 정리하지는 않겠다. 이 문제 푼다고 몇일동안 끙끙거려서 딱히 까먹을 일도 없을 것 같긴 하다. 이런 코드가 있다. 동아리 실습 문제인데, 일단 처음부터 시도해보자. 일단 방법으로는 FSB(Format String Bug)로 libc를 알아내서, printf 를 system으로 바꾸어 주면 /bin/sh를 주지 않아도, 앞에서 read로 buf에 값을 넣어주기 때문에 원하는 명령어를 실행할 수 있을 것이다. (모법답안은 이것과 다르더라. 일단 atoi함수가 어떻게 실행되는지를 찾아볼 생각을 안했다...) 일단 먼저 leak에 관한 부분이다. 모든 프로그램에 해당되는데 스택 밑부분을 보면 저렇게 libc_start_main+n에 관한 부분이 고스..
· Android
한 5일정도 Editor에 관한 기능들을 구현하는 중이고, 지금까지의 결과와 구현시 애로사항에 대하여 적어보겠다. 지금까지 Underline Span을 제외한 Italic, Bold 스타일을 주는 기능은 90%이상 구현이 완료되었다. 앞으로는 자잘한 버그만 수정하면 된다. 이유는 모르겠지만, 에뮬레이터에서는 잘되던게 실기기에서는 안되고, 실기기에서는 잘 되던게 에뮬레이터에서 잘 안되는 상황이 가끔 발생. 웃기점은 이전에는 되다가 갑자기 안되거나 이 반대의 상황이 벌어지기도 한다는 것. span을 줄때 숫자와 문자가 약간 다른 취급을 받는다는 것도 알 수 있었다. 일단 에디터의 주요 기능및 알고리즘 1. 문자열 선택후 Bold, Italic, Underline 버튼 누르면 각각 맞추어서 Span들어감 2...
· Android
Editor를 하나 만드는 중이다. 실제로 이 에디터가 지금 개발중인 앱에 들어갈지는 모르겠지만, 지금까지 git에 공개된 에디터들을 보면 모두 Html을 파싱해서 만드는 것 같지만, 본인은 웹쪽은 거의 지식이 없기 때문에 Span으로 한번 해결해 보고자 했다. 그래서 몇일간 많은 시도를 해보며 알아낸 것들을 기술 해보려고 한다. 에디터를 만드는 것은 상상외로 까다롭게 될 것 같다. 1. SPAN_EXCLUSIVE_INCLUSIVE 가 대체 뭘까? exclusive는 속성 확장 X , inclusive는 속성을 확장한다는 뜻이다. 만약 위의 ex_in 속성을 주고 뒤에 문자를 insert 하면 설정한 속성이 뒤에도 유지된다는 것. 만약 중간에 삽입하게 된다면, 속성 상관없이 주위의 속성을 따라감. 아래 ..
· Android
방학을 맞이하여앱 개발을 하고 있는데, 기록으로 남기면 좋을 내용들이 꽤나 있을 것 같아서 이렇게 글을 써보려고 한다. Shared Element Transition을 이용하려고 해보았는데, 구글 로그인 후 startActivity로 화면전환을 시도하였지만, 클래스는 로드가 되고 레이아웃은 그려지지 않는 문제가 발생하였고, 이에 대한 해결책이 이번 일지의 주된 내용이다. 위 영상이 만들고 싶은 결과물(지금은 완성이 되었지만..) 버그는 항상 앱 개발을 하면서 있지만, 이번의 짜증나는 점은 Critical한 에러가 아니기 때문에.. 즉 안드로이드 입장에서는 별 이상이 없다고 판단하는 것이다. 사실 이건 에러가 아니라 내가 잘못한 것 이였는데, 구글에 나와있는 자료를 맹신한 것이 원인이였다. 보통 나는 개발..
OSOR2
Osori Development Studio