iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 18
3
Security

新手眼中的資安系列 第 18

[Day18]-新手的Web系列SQLinjection 0x2

  • 分享至 

  • xImage
  •  

Day18-新手的Web系列SQLinjection 0x2

正文

  • USE

    • USE "資料庫名稱" ;
    • 使用資料庫
  • DROP

    • DROP DATABASE "資料庫名稱" ;
    • 刪除資料庫
  • UNION

    • "SQL語句1" UNION "SQL語句2" ;
    • 把兩個SQL語句的結果合併
  • INSERT

    • INSERT INTO "資料表名稱" "欄位名稱1,欄位名稱2" VALUE "值1,值2" ;
    • 把資料加入資料表中
  • UPDATE

    • UPDATE "表格名稱" SET "欄位1" = [新值] WHERE "條件" ;
    • 修改資料表中的資料
    • 例如:
    • UPDATE dessert_table SET price = 500 WHERE dessert_name = cake ;
  • DELETE FROM

    • DELETE FROM "表格名稱" WHERE "條件" ;
    • 刪除資料庫中的資料
    • 例如:
    • DELETE FROM dessert_table WHERE dessert_name = macaron ;

SQLinjection

  • injection
    • 注入惡意的程式碼,破壞原本程式碼的語意,來達到攻擊的效果
    • 通常是缺乏過濾使用者的輸入,而帶入到SQL語句中
    • 會導致:
      • 資訊洩露、竄改
      • 讀/寫檔
        • possible getshell

reference: https://xkcd.com/327/
  • 上面那張圖大概是在說,有一個人打給女生說你兒子在學校發生勒一些問題,然後那個人跟他說,你的兒子是叫Robert'); DROP TABLE Student; -- 嗎?,女生說對,結果學校的student這個資料表就全部消失了,那個女生就說,你應該要過濾使用者輸入!

  • DROP TABLE = 刪除資料表
    • 刪除所有學生的資料

CTF

  • 全名 Capture The Flag,中文是奪旗賽
  • 是一種駭客之間進行技術競技的一種比賽形式
  • 今天會用到的題目是 picoCTF2019

第一題

  • 我們可以先找看看可以輸入東西的地方,例如上方圖片左方Admin Login,就會看到以上畫面

  • 一開始可以先試看看:admin' or 1=1 --

  • 可以看到他的語法,這語句的意思是用admin去登入再用'關起來,或是1=1,之後全部註解掉

  • 看到這個畫面就是成功拿到flag

第二題

  • 試看看一樣的語句會發現它有過濾字元,那我們可以找找替代的語法

  • 我用 || 替代 OR ,但他好像把所有跟OR有關的都過濾了

  • 所以乾脆直接用admin' -- ,直接用admin登入,後面全部註解

上一篇
[Day17]-新手的Web系列SQLinjection 0x1
下一篇
[Day19]-新手的Web系列SQLinjection 0x3
系列文
新手眼中的資安30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言