LOB cobolt -> goblin id : coboltpw : hacking exposed 코드입니다. 전 레벨과 달라진 점은 argv를 이용해서가 아닌 gets로 입력을 받군요. bof가 발생하는 군요. ret값을 조작하여 공격하면 될 것 같습니다. 바로 분석을 해보겠습니다. 분석을 하기 위해 tmp라는 폴더를 만들고 cp하겠습니다. 스택프레임이 16만큼 형성되어 있고 ebp-16 즉 esp부터 gets로 입력을 받습니다. 메모리 구조는 buf(16) | sfp | ret 이 되겠습니다. 저는 RTL기법으로 풀도록 하겠습니다. 먼저 system 함수의 주소를 구하도록 하겠습니다. 0x40058ae0입니다. 이제 /bin/sh의 주소를 구해보겠습니다. 주소를 구하는 코드입니다. 컴파일을 해주고 실행하..
LOB gremlin -> cobolt id : gremlinpw : hello bof world 코드입니다. 버퍼의 크기가 16인데 strcpy를 통해 bof가 가능합니다. bof를 이용해서 ret을 조작해주면 될 것 같습니다. 하지만 쉘코드를 스택프레임안에 넣을 수 없을 것 같습니다. 16이 너무 작아서 입니다. 그래서 환경변수 기법 또는 RTL기법으로 풀어야 할 것 같은데 저는 환경변수 기법을 이용해서 공격을 해보겠습니다. 먼저 분석을 위해서 tmp폴더를 만들고 cp하겠습니다. 어셈블리 코드입니다. 스택 프레임을 16만큼 형성하였습니다. ebp-16, 즉 esp부터 strcpy가 됩니다. 따라서 메모리구조는 buf(16) | sfp | ret 이 구조가 될 것 같습니다. ret을 쉘코드가 담긴 환경..
LOB gate -> gremlin id : gatepw : gate 코드입니다. 버퍼의크기는 356인제 argv[1]를 strcpy를 하니 버퍼오버플로우가 일어납니다. bof로 ret을 조작해주면 될 것 같습니다. RTL기법을 이용해서 풀도록 하겠습니다. 먼저 분석해보겠습니다. 분석을 위해 tmp라는 폴더를 만들고 복사했습니다. 어셈블리 코드 입니다. 스택프레임을 0x100 만큼 형성하고 있습니다. 0x100은 10진수로 256입니다. 따라서 메모리 구조는 buf 256 | sfp | ret 이 될 것 같습니다. 이제 시스템 함수의 주소와 /bin/sh의 주소를 구해보겠습니다. 0x40058ae0 입니다. 이제 /bin/sh의 주소를 구해보겠습니다. 주소를 구하는 코드입니다. 컴파일을 해주고 실행하면 ..
- pwable
- heap
- glibc
- ebp change
- stack reusing
- srop
- shellcoding
- exit
- overflow
- SQLi
- 해킹
- pwnable.tw
- fastbindup
- hacking
- TLS
- rt_sigreturn
- codegate
- fastbin
- oob
- tcache
- FSB
- HackCTF
- pwnable
- 본선가고싶다
- fsop
- Total
- Today
- Yesterday