본문 바로가기

Study

codegate nuclear pwn tools 사용 from pwn import * elf = ELF("./nuclear")rop = ROP(elf) recv_plt,send_plt = elf.plt['recv'], elf.plt['send']recv_got,send_got = elf.got['recv'], elf.got['send'] ppppr = 0x0804917Cboom = 0x08048B5B print "read_plt : " + str(hex(recv_plt))print "send_plt : " + str(hex(send_plt))print "read_got : " + str(hex(recv_got))print "send_got : " + str(hex(send_got)) conn = remote('localhost', 1129) payload .. 더보기
CGC ( cyber grand challenge ) 환경 구축 2016 DEFCON에서 CGC 문제가 많이 나왔었고, 그 때 환경 구축을 어떻게 했는지 올린다. CGC를 vagrant라는 툴을 활용해서 구축 해여야 한다. 나는 window에서 했다. https://github.com/ctfs/write-ups-2015/tree/master/defcon-qualifier-ctf-2015/pwnable/cybergrandsandbox 위 주소를 보고 따라 했다. http://repo.cybergrandchallenge.com/boxes/ 여기서 Vagrantfile을 받는다. https://www.vagrantup.com/downloads.html 여기서 vagrant window 버전을 받는다. https://www.virtualbox.org/ 여기서 virtual .. 더보기
DEFCON 2016 easy-prasky 서버와, 데이터 파일이 하나 주어진다. file 명령어로 확인 해보면 그냥 data다.. hex로 열어보면 처음에 CGC라는 문자열을 볼 수 있다. 처음에 CGC를 구글링 했는데 닌텐도 위 파일이라 길래 닌텐도 위 에뮬레이터를 설치 했지만 사실 그 문제는 아니고.. Cyber Grand Challenge의 약자이다. https://github.com/CyberGrandChallenge 위 깃허브에 가면 CGC파일에 관련된 프로그램들이 모여있다. https://github.com/CyberGrandChallenge/cgc2elf 먼저, cgc를 elf로 변환해 주는 프로그램으로 elf로 변환 한 다음 실행 해보면 입력을 받고 바로 종료 해 버린다. ida로 까보자. read를 부르는 부분을 따라가보면 re.. 더보기
DEFCON 2016 baby-re (from angr) 실제 DEFCON를 할때는 같은 팀원인 rls1004가 13차(?) 방정식을 엑셀을 이용하여서 풀었었다. 이 문제가 열리자 마자 10분 만에 푸는 팀들을 보고 어떻게 리버싱을 하길래 저렇게 빨리 풀 수 있을지가 궁금 했었고 wrtie up을 뒤지던 중 angr를 이용한 풀이를 보았다. 참고 : http://hack.carleton.team/2016/05/21/defcon-ctf-qualifier-2016-baby-re/ angr는 Shellphish 팀에서 만든 툴이다. 아직 모든 기능을 접해 보진 못했지만 symbolic excution을 가능하게 해주기 때문에 CTF에서 활용 범위가 매우 넓다. angr 설치 : https://github.com/angr/angrangr를 활용한 CTF 풀이 : ht.. 더보기
angr 설치하기 http://blog.kimtae.xyz/170 난 잘 못깔아서 그런지 할때 마다 mkvirtualenv angr 이 명령어 입력 해줘야 한다 -_- 더보기
DEFCON 2016 xkcd □ Challenge Description: 리버싱 + 포너블 □ Material: □ Solution: 2016 DEFCON에서 가장 많이 푼 문제였다. 적당한 리버싱과 적당한 메모리 릭을 하면 풀 수 있는 문제. strtok로 자르면서 형식에 맞는지 검사한다. 하나하나 일일이 해보면서 맞춰보면 아래와 같은 형식이 된다. “”안에 들어 있는 문자를 (* LETTERS)에서 *개만큼 출력시켜 주는 형식이다. 소스를 보면 알겠지만 “”안에 들어 있는 문자 보다 많은 *개를 입력해 주면 프로그램을 종료 시켜 버린다. SERVER, ARE YOU STILL THERE? IF SO, REPLY "aaaaaa" (6 LETTERS) 소스를 분석해 보면 “globals”에 내가 입력 한 값이 들어가고 “unk_6b.. 더보기
echo -e 옵션 echo로 커맨드 인젝션을 해야하는대 많은 것들이 필터링이 되어 있는 경우가 있다.이럴때 -e 옵션을 사용하면 우회 할 수 있다. 예를 들어 echo -e "\x6c\x73" 이런식으로 하면 ls가 출력된다. 더보기
php wrapper 사용 ?pages=php://filter/convert.base64-encode/resource=hi.php-> hi.php가 base64로 인코딩 되어 나온다 zip://a.zip%23a.php -> zip파일 안에 있는 a.php를 실행한다 php 몇 버전 이상부터는 %00 바이트를 사용 할 수 없어서 php wrapper를 사용 할 수 없다고 한다 더보기
2016 PCTF tonneree 200점 더보기
pwnable.kr syscall exploit only 보호되어 있는 글입니다. 더보기