Profile

머리정리하는곳

c2w2m2

Gadget

막 syscall 을 쓰고싶은데 syscall 가젯이 없을경우가 있다.


심지어 릭벡터가 없어서 libc에서 못불러오는 경우가 있다.


이럴경우에 쓸수 있는 방법이 있다.



이렇게 find "\x0f\x05" 로 검색해보면 read+14 부분에 syscall 이 있는걸 볼 수 있다.


그럼 이걸 어떻게 이용할 것인가 하면 바로 read_got 부분에 있는 libc의 하위 1바이트를 0x5e 로 고쳐주는 거다. 


그러면 read_plt 를 부를경우, syscall 이 콜될것이다.


그리고 1바이트 경우에는 간단하게 되고 2바이트가 넘어가면 brute force 가 조금 필요하다.  그래도 aslr 그냥 뚫는거보단 훨씬 빠르다


'Today' 카테고리의 다른 글

puts 분석 조금  (0) 2018.02.09
pyjail  (0) 2018.02.08
Environ, atexit  (0) 2018.02.07
sprintf bof  (0) 2018.01.31
got ptr  (0) 2018.01.29