old 194

RPISEC 연습문제 / crackme0x0?? (기초 리버싱, radare2 연습)

문제는 간단하다. password를 받고 고정된 값과 같으면 성공 메시지를 출력한다. strings로 긁어낼 수도 있다. 먼저 radare2를 이용하기 전이라면 사용했을 gdb를 이용한다. [ gdb / b *main+70 ] main+70에는 strcmp가 들어있다. 비교구문을 잡으면 스택에 비교하는 데이터들을 확인할 수 있기 때문. 보면 1234는 입력한 값이고 g00dJ0B!이 flag가 된다. radare2를 이용한 풀이이다. 아직 문제를 더 풀어 보아야 할 듯 하다. 기본적인 명령어 aa - analyze all pdf @ function name - function [0x08048430]> pdf @main ;-- main: / (fcn) sym.main 133 | sym.main (); | ..

old 2018.02.27 (2)

hdcon 2016 / runme (mips 프로그램 실행)

mips 가상머신을 돌리려고 하다 보니 mips 관련 문제 풀이로 이어져서 풀어보게 되었다. ref : http://kblab.tistory.com/328 qemu는 1712 최신버전으로 먼저 받고 링크 페이지에 필요한 파일들을 받고 배치파일을 생성한다. qemu-system-mipsel -M malta -kernel vmlinux-3.2.0-4-4kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1 console=tty0" -redir tcp:4444::22 -nographic mips.bat 파일 공유 부분은 가지고있던 vm웹으로 전송하는 형태로 사용하였다. 뭐... runme 문제 자체가 mips상에서 실행하면 되는 프로..

old 2018.02.27

linux / source.list 수정하기

qemu로 mips squeeze 버전을 설치했었다. 필요에 의해 gdb를 설치하려는데 자꾸 설치가 안된다. root@debian-mips:~# apt-get install gdb Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: gdbserver libpython2.6 Suggested packages: gdb-doc The following NEW packages will be installed: gdb gdbserver libpython2.6 0 upgraded, 3 newly installed, 0 to ..

old 2018.02.27

labyrenth 2017 / Mobile 2 - routerlocker (mips 리버싱, gdb set follow-fork-mode child)

mips가 mobile로 분류 되어 있다. 환경을 맞추고 실행을 시켜 보면 위와 같이 나온다. License file not found로 봐서는 파일을 읽어 들이는 것으로 보인다. [ IDA - fopen (loc_400908) ] mips에서 파라미터가 들어가는 형태는 a0, a1을 사용하는 듯 하다. 형태를 좀 자세히 알기 위해서 fopen의 원형을 보면 (https://www.ibm.com/support/knowledgecenter/ko/ssw_ibm_i_73/rtref/fopen.htm) FILE *fopen(const char *filename, const char *mode); 이와 같은 형태를 띈다. IDA에서 출력한 정보를 바탕으로 보면 fopen($a0, $a1)의 형태를 지닌다. mod..

old 2018.02.27

labyrenth 2017 / Mobile 1 - Ezdroid(안드로이드 코드 리버싱, 자바 연산상 오류 )

apk를 디컴파일 해 보면 볼만한 클래스는 EzMain과 ones 두 개가 존재한다. EzMain을 메인으로 생각하면 된다. [ onCreate ] onCreate부분을 보게 되면 Part1으로 특정 문자열이 출력 되게 되어 있다. 기기를 붙여 실행을 시키면 log로 확인이 가능하다. 아니면 코드 분석을 하면 된다. [ retIt ] part1의 답인 retIt을 보면 위와 같다. 고정된 숫자값의 shift right x만큼을 한다. 단, 저장되는 형태가 byte이므로, &연산을 통해 버려주어야 한다. 파이썬 연산으로 변환하면 다음과 같다. (-1041749503 >> 5) & 0xff (-1865645093 >> 9) & 0xff (-1972361451 >> 7) & 0xff (-1779558645 >..

old 2018.02.27

radare2 / sym 파싱 오류, sym to str

https://cpuu.postype.com/post/838572 위 포스트를 보고 radare2 연습을 하는 과정에서 문제가 발생함. RPISEC 첫 연습문제인 crackme0x00a [ 정상 결과 ] 이미 해결 뒤라 정상으로 나온 사진밖에... str.g00dJ0B!으로 나와야 할 부분이 자꾸 sym.pass.1685로 나타나는 현상... 이유는 버전상 오류였던 듯 하다. (관련 : https://github.com/radare/radare2/issues/4997) ubuntu에서 apt-get으로 받았던 radare2의 버전은 0.9.x로 너무 오래된 것 https://github.com/radare/radare2 공식 깃에서 받아서 다시 설치하면 해결이 가능하다.

old 2018.02.26

Clicker Heroes

https://www.youtube.com/watch?v=AMMOErxtahk LiveOverflow에서 Don't wasting your time 을 주제로 영상이 하나 올라왔다. 내용 중에 안드로이드 게임의 취약한 부분을 이용한 공격을 하는 내용이 있어서 따라해 보게 되었다. 타겟이 되는 게임은 Clicker Heroes 레벨 별로 몬스터가 등장하는데 아이템을 구매해서 더 강하게 키워나가는 방식이다. 터치로 데미지를 줄 수도 있고, 아이템 구매를 통해 시간당 데미지, DPS를 올려 잡는 방법이 있다. 조금 해봤는데 마지막 영웅의 값이 얼마일지 추측이 되지 않는 수준까지 된다. 물론 과금도 있다. 해당 게임의 경우, 백업을 할 수 있는데, 백업의 형태가 특이하다. Export, Import 기능이 존재..

old 2018.02.26

BlackHat 2017 / Web Cache Deception Attack

https://www.youtube.com/watch?v=mroq9eHFOIU 웹 CDN 서버에서의 캐시 데이터로 인한 취약점이다. 공격자가 어떤 공격으로 인해 피해자를 원하는 서버로 연결요청을 시킬 수 있다고 할때, http://private.com/private.php/nonexists.css 로 링크를 요청시킨다. 여기서 정상 페이지는 private.php이며, 뒤에 nonexists.css 는 static 페이지로 인식 시키기 위함이다. 이렇게요청을 시키게 되면, 피해자의 권한으로 private.php에 대한 접근 결과를 받게 된다. 하지만 CDN 서버에서는 private.php가 아닌 private.php/nonexists.css로 인식을 하게 되고, static 캐시 데이터로 인식을 하기 때문..

old 2018.02.26

codegate 2018 / Welcome to droid (Activity 강제 실행)

안드로이드 문제이다. Activity가 총 4개로 MainActivity, Main2Activity, Main3Activity, Main4Activity 가 존재한다. 먼저 MainActivity는 id를 입력받고 Main2Activity로 전환한다. 그리고 비밀번호를 받는데 입력받은 값을 고정된 문자열인 codegate2018hurray!HAHAHALOL과 특정 연산을 진행한다. [ Main2Activity ] 아마 액티비티에 번호를 붙인 것은 순서대로 진행을 하라는 의미일 것이며, 최종 목표는 Main4Activity를 실행 시킬 것이라고 생각하여 4번을 보았다. [ Main4Activity ] 코드는 간단하다. 액티비티를 띄우면 JNI에서 문자열을 읽어 온다. 다른 작업은 없기 때문에 해당 액티비티..

old 2018.02.26

Genymotion Unable to start the virtual device.

nox 설치 이후 갑자기 genymotion이 동작하지 않는 문제가 발생. Unable to start the virtual device. 대충 구글링 해 보면 네트워크 설정을 바꾸라던가 vbox 에러 로그를 확인하라 함.별 효과는 없었고 문제는 vbox의 버전 문제 https://www.virtualbox.org/ticket/15752?cversion=0&cnum_hist=1 vbox 특정 버전 이하에서 종종 발생하는 문제로 vbox 최신 버전을 설치 해주면 문제가 해결됨. (genymotion과 함께 다운로드 되는 vbox의 버전은 5.0.x)

old 2018.02.12 (1)