新手のCTF筆記

1 分鐘閱讀

CTF 筆記(學習尚未完成,小弟扔須努力,尚有缺失,敬請見諒,sorry)

web

1.信息蒐集

  • 檔案
    • robots.txt
    • .git
      • 工具:https://github.com/lijiejie/GitHack.git
          python GitHack.py http://www.target.com/.git/
        
    • .svn
    • .DS_Store
      • 工具:https://github.com/lijiejie/ds_store_exp.git ``` python ds_store_exp.py http://www.target.com/.DS_Store
    • .index.php.swp
    • index.php~
  • Google/Github Hacking
  • 社工庫

2.Common Exploit

  • PHP
    • 弱型別比較
    • 存取陣列元素可以用 $array{index}

reverse

1.基本工具

  • file 印出檔案類型
  • strings 印出可示字元
  • strace -s 100 印出 system call & signal
  • ltrace -s 100 印出 library call

2.組合語言大小事

  • objdump -M intel -d ./binary 以INTEL格式反組譯
  • 組譯asm && 連結目的檔 == 噴出執行檔
     nasm -f elf64 test.asm
     ld -m elf_x86_64 -o test test.o
    
  • Register們

  • IP: instruction pointer (指向下一行要執行的ASM code)
  • SP: stack pointer (指向stack的頂端)
  • BP: base pointer(指向stack的底端)
  • 一般暫存器: AX:累積暫存器 BX:基底暫存器 CX:計數暫存器 DX:資料暫存器
  • 函式呼叫過程 1.call func 2.push rbp 3.mov rbp , rsp 4.執行呼叫的func 5.leave =    mov rsp,rbp    pop rbp 6.ret =    pop rip

3.gdb 動態分析

  • 下段點 break main break *0x4004da -

4.Ghirda 反編譯

pwn

1.Buffer overflow

2.Shellcode

2.保護機制

  • Canary
  • DEP/NX
  • ASLR

crypto

1.XOR

https://github.com/hellman/xortool.git

xortool -c 20 -m 200 file

Flag可能出現在Key或當前目錄下xortool_out資料夾裡

2.對稱式加密

  • Type
    • DES
    • AES
  • Mode
    • EBC
      • 各個16bit區塊各自加密
      • 各區塊可調換:Cut&Paste attack
    • CBC
      • c[1].cipher=encrypt(c[1].plain xor(c[0].cipher))
      • c[0]前面沒有,使用隨機生成的vi當前一個cipher
      • 串改c[n-1].cipher讓c[n].plain變成你要的質:bit-fliping attack
    • CFB
    • CTR
    • OFB

3.非對稱式加密

  • RSA
    • 算法
      • 公鑰 e,n 1.找兩質數p,q ,n=pq 2.phi(n)=(p-1)(q-1) 3.找小於phi(n)且與phi(n)互質的e 4.密文=(明文^e) mod n
      • 私鑰 d 1.d=gmpy2.invert(e,phi(n)) 2.明文=(密文^d) mod n
    • 常見CTF題目
      • n很小,有e factordb分解p,q->求phi(n)->算d->用d,n解密文 -
  • ECC

forensic

1.照片

  • file
  • binwalk
  • exiftool
  • stegsolve.jar

留言