iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0
佛心分享-刷題不只是刷題

一直刷 CTF系列 第 17

一直刷 CTF - Day17

  • 分享至 

  • xImage
  •  

上課紀錄

Injection (駭客的填字遊戲)

Image

把所有車牌都刪掉了 xddd

Image

讚讚的影片說明

這次會提到的

Image

Code Injection

以 python eval 舉例

Image

其他常見的危險函式

Image

如何預防?

可以看看 這個

Code Injection 常常會出現在 IOT 設備 (像是監視器、TX link 之類的)

Command Injection

Image

指令就會變成 dig vincent55.tw; id

基本技巧 ; | && ||

Image

command substitution

Image

如果空白被過濾了 - 用 ${IFS} / <

Image

如果有一些 keyword 被過濾了

Image

Lab - dig

這題她有提供原始碼,可以知道背後的執行邏輯是 <pre><?= system("dig '" . $_POST['name'] . "';") ?></pre> ,所以可以用 '; 來截斷 dig 然後就能在後面輸入想要的指令了,先用 ls 找到 Flag 的位置,然後再印出來就是答案摟

Image

Image

Lab - dig waf1

這題多檔了一些字 blacklist = ['|', '&', ';', '>', '<', "\n", 'flag']; ,可以用之前的 code substitution 來繞過

Image

Lab - dig waf2

這題多檔了空白,用 ${IFS} 就能通過了

Image

Reverse shell

Normal shell: ssh

Image

Reverse shell 就是改成從 server 主動連線到 client

Image

Image

這邊 有各種不同的 reverse shell

ngrok 可以用來反向代理,這樣如果連成大網路就不會被擋一些東西了

SQL Injection

簡介

Image

Image

Image

SELECT title, subtitle, context FROM articles;
這邊是要找出 title, subtitle, context 這三個欄位的資料

Image

SELECT * FROM articles;
找出所有欄位的資料

Image

SELECT * FROM articles WHERE id = 2;
找出 id 為 2 的資料

Image

這邊就有點像是前面 command injection 一樣,可以讓他做一些壞壞的事情

SELECT * FROM articles WHERE id = 3; DROP TABLE articles;

Image

另外如果是在處理登入的資料庫是用 SELECT * FROM user='' AND pass= 來做判斷帳密是否正確,那就有可能發生下面一張的問題

Image

藉由 ' 截斷 和 -- 註解的方式,可以讓他不管密碼是什麼的狀況下登入

Image

分類

  • Stacked: 用分號隔開各種語句
  • Union Based: 用 UNION 來將兩個語句合在一起
  • Blind Based: 當目標不會告訴你 result 的時候
    • Time Based: 透過 sleep 來判斷條件
    • Boolean Based: 透過布林結果來判斷條件
  • Error Based: 透過錯誤訊息來取得資料
  • Out of Band: 讀檔、寫檔...

參考資料


上一篇
一直刷 CTF - Day16
下一篇
一直刷 CTF - Day18
系列文
一直刷 CTF30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言