본문 바로가기
포너블(pwn)

서버의 라이브러리 버전 알아내는 법

by lolchangilsang 2022. 2. 25.

포너블을 할 때 로컬에서 사용하는 lib랑 서버에서 사용하는 lib가 다를 때가 있다

 

이럴 때, 아무 함수나 주소를 구할 수 있다면

 

https://libc.blukat.me/

 

libc database search

Query show all libs / start over

libc.blukat.me

여기에 왼쪽에는 함수 이름, 왼쪽에는 하위 1.5바이트(끝 세자리)를 쓰면 무슨 lib를 사용하는지 알려준다

 

여기 말고도 여기 

https://libc.rip/

 

이것 말고 함수를 구하는 방법이 있는데 

 

https://github.com/niklasb/libc-database

 

GitHub - niklasb/libc-database: Build a database of libc offsets to simplify exploitation

Build a database of libc offsets to simplify exploitation - GitHub - niklasb/libc-database: Build a database of libc offsets to simplify exploitation

github.com

여기 가서 다운 받고 압축 푼 후 

 

./get <원하는 옵션>으로 db를 구축하고,  (필자는 시간이 오래 걸려도 ./get all로 다 다운받았다)

 

그 후

 

./find (함수의 이름) (끝 세자리수)

 

를 입력하면 라이브러리를 알려준다

 

그 다음 offset을 구하는 방법은

 

첫 번째,

 

./dump <알아낸 라이브러리 버전> <함수이름> 

 

를 입력해서 바로 offset을 구할 수 있다

 

두 번째, 

 

위 라이브러리를 구하는 두번째 방법을 사용했으면 db가 있겠고 그곳에 있는 lib를 pwntool로 ELF해줘서 사용하면 된다

ex) libc = ELF("./lib/블라블라")

ex) read_offset = libc.symbols["read"]

'포너블(pwn)' 카테고리의 다른 글

펌) One Gadget 설치 및 사용법  (0) 2022.03.07
rtl x86, rop x86  (0) 2022.02.25
리눅스) 라이브러리 검색  (0) 2022.02.23
RTL ret가젯은 언제 넣어줘야하나?  (0) 2022.02.19
python2&3 pwntools설치  (0) 2022.02.17