전체 글
-
[Pwnable] jmp, call 차이 (RTL chaning할 때 RET)Notepad/Pwnable 2021. 11. 3. 00:27
jmp : 해당 주소로 이동 call : RET(다음 실행 줄)를 스택에 저장하고 jmp 32bit 기준 call을 이용한 함수 호출 ebp+0 -> sfp ebp+4 -> ret ebp+8 -> 첫 번째 인자 RTL Chaning할 때는 call이 아닌 jmp로 호출하기 때문에 RET가 스택에 쌓이지 않지만 호출한 함수가 에필로그 과정을 거치기 때문에 ebp+4에 연계할 함수주소를 적어주면 됨
-
-
[HackCTF : Pwnable] ROP (300p)Wargame/HackCTF 2021. 8. 31. 16:20
[HackCTF : Pwnable] ROP (300p) 입력을 받고 종료한다. 대놓고 취약한 함수가 있다. 136byte buf에 256byte 입력을 받아 bof가 터짐 이전에 풀었던 Yes or no 문제랑 똑같이 풀었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 from pwn import * p = remote("ctf.j0n9hyun.xyz",3021) e = ELF("./rop") libc = ELF("./libc.so.6") pppr = 0x08048509 write_plt = e.plt["write"] read_got = e.got["read"] read_offset = libc.symbols["read..
-
[HackCTF : Pwnable] Yes or no (150p)Wargame/HackCTF 2021. 8. 30. 15:26
[HackCTF : Pwnable] Yes or no (150p) 실행해보면 숫자 입력을 받고 종료한다. do_system+1094 관련해서 찾아보니 system함수를 실행할 때 피연산자[rsp+0x40]가 16byte로 정렬되어야 한단다. 입력받은 숫자가 35줄 조건에 맞으면 gets함수가 실행된다. 비교하는 부분에 break를 걸고 값을 확인해보자. 0x960000 여기서 RTL을 이용하면 되는데 ASLR 때문에 메모리 leak을 통해 libc_base를 구해줘야 한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 from..
-
-
[Hackthebox : Machines] Knife (EASY)Hackthebox/Machines 2021. 8. 26. 16:52
[Hackthebox : Machines] Knife (EASY) ssh와 http가 열려있다. 접속해서 이것저것 눌러봤는데 아무 기능이 없다. php버전이 8.1.0-dev라는 것을 알 수 있었다. 떡하니 RCE 취약점이 존재한다. POC를 이용해 user쉘 획득 ROOT 위 명령어로 root를 따려 했지만 오류가 떠서 다른 poc를 이용해 쉘을 붙였다. https://github.com/flast101/php-8.1.0-dev-backdoor-rce
-
[Hackthebox : Machines] Armageddon (EASY)Hackthebox/Machines 2021. 8. 26. 09:57
[Hackthebox : Machines] Armageddon (EASY) nmap을 통해 http와 ssh가 열려있는 것을 확인했다. 접속해보면 이런 페이지가 나온다. Nikto를 통해 Drupal로 이루어진 것을 알 수 있었다. droopscan툴을 이용해 Drupal 7.56 버전인 것을 보고 해당 버전 취약점을 검색해봤다. Drupalgeddon2라는 취약점을 이용할 수 있을 것 같다. metasploit으로 공격해보자 LHOST와 RHOSTS 설정 쉘을 얻었다. brucetherealadmin라는 유저를 확인 /var/www/html/sites/default/settings.php 에서 DB정보를 확인할 수 있다. users 테이블 확인 brucetherealadmin의 pass를 찾았다. jo..