http://kaspyx.tistory.com/86?category=939328

'HACKING > System hacking' 카테고리의 다른 글

ROP를 익히기 좋은 문제들  (0) 2018.05.18
알아두면 좋은 명령어 모음 (다시 정리하자)  (0) 2018.05.13
64bit rop tip  (0) 2018.05.13
double free bug  (0) 2018.05.10
pwnable 풀 때 objdump  (0) 2018.02.25

[buff] +  gadget [pop rdi; ret] + [/bin/sh string addr] + [system addr]


/bin/sh 문자열 offset 확인

babyhack@ubuntu:~/tmp$ strings -a -tx /lib/x86_64-linux-gnu/libc.so.6 | grep "/bin/sh"

 17ccdb /bin/sh

 


system 함수 offset 확인

babyhack@ubuntu:~/tmp$ readelf -s /lib/x86_64-linux-gnu/libc.so.6 | grep "system"

   223: 000000000012b2c0    70 FUNC    GLOBAL DEFAULT   12 svcerr_systemerr@@GLIBC_2.2.5

   577: 0000000000046640    45 FUNC    GLOBAL DEFAULT   12 __libc_system@@GLIBC_PRIVATE

  1337: 0000000000046640    45 FUNC    WEAK   DEFAULT   12 system@@GLIBC_2.2.5



라이브러리 주소 확인

babyhack@ubuntu:~/tmp$ ldd ./r0pbaby 

 linux-vdso.so.1 =>  (0x00007ffca2aeb000)

 libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f2b712e3000)

 libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2b70f1e000)

 /lib64/ld-linux-x86-64.so.2 (0x00007f2b716ea000)


Ref.http://crattack.tistory.com/tag/64bit%20ROP

'HACKING > System hacking' 카테고리의 다른 글

알아두면 좋은 명령어 모음 (다시 정리하자)  (0) 2018.05.13
libc-database 사용법  (0) 2018.05.13
double free bug  (0) 2018.05.10
pwnable 풀 때 objdump  (0) 2018.02.25
GOT Overwrite  (0) 2018.02.24

http://www.hackerschool.org/HS_Boards/data/Lib_system/dfb_leon.txt



'HACKING > System hacking' 카테고리의 다른 글

libc-database 사용법  (0) 2018.05.13
64bit rop tip  (0) 2018.05.13
pwnable 풀 때 objdump  (0) 2018.02.25
GOT Overwrite  (0) 2018.02.24
CTF pwn 문제용 nc 서버 만들기  (0) 2018.02.15

rootme 문제를 풀면서 구글링을 하다가 table_name을 한번에 뽑아 내는 방법을 알게됐다.


mysql의 group_concat 함수를 사용하면 친절하게도 table_name을 limit로 따로따로 구하지 않고 한번에 붙여서 출력해준다.


ex)


select all group_concat(table_name) from information_schema.tables


=> 각 테이블을 콤마로 구분하여 출력해준다.

'HACKING > Web hacking' 카테고리의 다른 글

Practical Web Cache Poisoning  (0) 2020.01.05
sqli information_schema tip  (0) 2019.07.14
SQL injection msql.innodb_table_stats  (0) 2018.02.24
sql injection 참고  (0) 2018.02.10
LFI Exploit with PHP Protocols / Wrappers  (0) 2017.11.30

문자열 /bin/sh 찾기

objdump -s (파일명) | grep / --color=auto

objdump -s (파일명) | grep b --color=auto

objdump -s (파일명) | grep i --color=auto

objdump -s (파일명) | grep n --color=auto

objdump -s (파일명) | grep s --color=auto

objdump -s (파일명) | grep h --color=auto


strcpy 주소 찾기

objdump -d (파일명) | grep strcpy


pop pop ret 가젯 찾기

objdump -d (파일명) | grep ret -B3


bss 영역 찾기

objdump -h (파일명) | grep bss



'HACKING > System hacking' 카테고리의 다른 글

64bit rop tip  (0) 2018.05.13
double free bug  (0) 2018.05.10
GOT Overwrite  (0) 2018.02.24
CTF pwn 문제용 nc 서버 만들기  (0) 2018.02.15
GDB BP에 관한 것  (0) 2017.11.29

codegate Simple CMS 문제 write up을 보다가 새로운 sql inejction 기술을 알았다.

보통 information_schema를 이용해 wargame을 많이 풀었었는데 information을 많이 막는 경우엔 먹히지 않는다.


이럴때 풀기 좋은 방법인듯 해서 포스팅 한다.


바로 mysql.innodb_table_stats이다.


사용방법은 간단하다.

먼저 desc로 컬럼 명들을 확인해보자.

database_name, table_name 등 injection에서 중요하게 다룰 수 있는 데이터가 저장되어있다.


select해보면 table명이나 database명을 뽑을 수 있다.

CTF에서 잘 이용할 날이 있으면 좋겠다.




'HACKING > Web hacking' 카테고리의 다른 글

sqli information_schema tip  (0) 2019.07.14
mysql group_concat  (0) 2018.04.04
sql injection 참고  (0) 2018.02.10
LFI Exploit with PHP Protocols / Wrappers  (0) 2017.11.30
Knowing about Local File Inclusion(LFI)  (0) 2017.11.14

PLT VS GOT


PLT(Procedure Linkage Table)

PLT는 일종의 실제 호출 코드를 담고 있는 테이블로, 이 내용 참조를 통해 _dl_runtime_resulve가 수행되고, 실제 시스템 라이브러리 호출이 이루어진다.

(GOT와 연결해주는 역할, 실제 바이너리에서도 사용하고자 하는 함수/라이브러리 주소 대신 PLT를 호출함.)


GOT(Global Offset Table)

PLT가 참조하는 테이블로, 프로시져들의 주소를 가지고 있다. PLT가 외부 프로시져를 호출할 때 GOT를 참조해서

해당 주소로 점프한다. (GOT는 외부 라이브러리 함수의 주소를 저장한다.)



간단하게 설명을 했으니 이제 GOT overwrite를 실습할거다.


사정상 리눅스가 없어서 Fedora Core3 문제 가상머신에서 실습을 했다.


일단 위와 같이 소스를 짰다. pritnf함수의 인자로 /bin/sh을 넣었다. 이렇게 한 이유는 이따가 pritnf함수의 got를 변경하기 위해서다.


우선 BP를 메인함수 직전에 걸어버린다.


그리고 run한다.

run하면 system 함수의 주소를 확인할 수 있다. system함수의 주소는 0x7507c0이다.


main함수를 디스어셈블리하면 printf함수의 주소가 나온다.

(fedora core3에서 하니 이렇게 함수 이름이 안나오는데 _init+56은 pritntf가 맞다.)


해당 주소를 i를 써서 코드로 보면 *0x8049574로 점프하는 부분이 있다. 저기가 got다.

 

주소를 확인해보면 GOT가 맞다.


이제 set명령으로 printf의 got를 system함수의 주소로 바꿔버리고 계속 실행하면

printf("/bin/sh") -> system("/bin/sh")로 코드가 변경되어서 실행이 된다.


개신기..


'HACKING > System hacking' 카테고리의 다른 글

double free bug  (0) 2018.05.10
pwnable 풀 때 objdump  (0) 2018.02.25
CTF pwn 문제용 nc 서버 만들기  (0) 2018.02.15
GDB BP에 관한 것  (0) 2017.11.29
heapoverflow 문제 풀이3  (0) 2016.11.05

CTF에서 pwnable 문제를 풀 때 nc를 이용해서 문제에 접속하는 경우가 많다. pwn문제에 nc로 문제를 만들고 공개하는 방법에 대해서 알아보고 기록을 한다.

xinetd를 이용해 nc 포트를 열어서 nc로 문제를 공개하는 방법이 있다.


1.xinetd 패키지를 설치한다.

우분투 기준 $apt-get install xinetd를 입력하면 설치할 수 있다.


2. /etc/xinetd.d/서비스이름 으로 파일을 생성한다.

$vi /etc/xinetd.d/서비스이름


3. 그리고 해당 파일에 아래와 같이 설정을 해준다.

service 서비스이름

{

          disable            = no

          flags              = REUSE

          socket_type      = stream # 사용하는 소켓의 종료를 입력한다. stream은 tcp를 뜻함

          protocol          = tcp       

          wait            = no

          user              = SSo # 계정

          server          = /sbin/shutdown  # 서비스할 파일명

}


추가. .py를 실행하는 서버는

server          = /usr/bin/python
server_args     = /home/script.py
위처럼 작성해주면 된다.


4. 서비스설정을 해주었으면 포트를 개방해주는 설정을 하기위해 /etc/service 파일에 설정을 추가해준다.

해당파일의 맨 아래에 # Local services라는 스트링이 있는데 이 아래에 포트 내용을 추가해준다.

# Local services

서비스이름 1234/tcp


5. nc로 접근하면 서비스가 제대로 실행되는 모습을 확인할 수 있다.

$nc localhost 1234


Ref.http://lily.mmu.ac.kr/lecture/08sm/Fedora2/7jang/2.htm

'HACKING > System hacking' 카테고리의 다른 글

pwnable 풀 때 objdump  (0) 2018.02.25
GOT Overwrite  (0) 2018.02.24
GDB BP에 관한 것  (0) 2017.11.29
heapoverflow 문제 풀이3  (0) 2016.11.05
heap overflow 문제풀이2  (0) 2016.11.02

https://websec.ca/kb/sql_injection


'HACKING > Web hacking' 카테고리의 다른 글

mysql group_concat  (0) 2018.04.04
SQL injection msql.innodb_table_stats  (0) 2018.02.24
LFI Exploit with PHP Protocols / Wrappers  (0) 2017.11.30
Knowing about Local File Inclusion(LFI)  (0) 2017.11.14
php extract 취약점  (3) 2017.08.09

http://gnu-cse.tistory.com/30

'HACKING > Reversing' 카테고리의 다른 글

IDA 코드 패치 후 elf 저장하는 방법  (0) 2019.08.14
OllyDBG 단축키 모음  (0) 2018.01.14
어세블리어 REP, STOS, MOVS  (0) 2018.01.14

+ Recent posts