えっ今日はハッキング
してもいいのか!
CTF Web入門
自己紹介
• おちゃむら
• 情報科学科 B4
• 欲しいもの:新規性のある研究テーマ
• ハマってること:深夜和地山公園徘徊
突然ですがみなさん、
「ハッキング」ってめっちゃ憧れませんか?
情報学部入る前のワイ
「情報学部…」
「つまりハッキングの知識があるってことか」
って毛利小五郎がツイッタラーに言わされてた気もする
でもハッキングって…ダメヂャン: (́・ω・`):
• 実際の製品に対してのハッキングは基本的にはダメ!
• でもやりた∼∼∼∼い!!!!
• そんな人に
CTF(Capture The Flag)
CTFとは
• 脆弱性が埋め込まれたウェブサイトなどの環境が用意されていて
• それに対して適切な攻撃を行い
• (機密情報的な)Flagを盗み出す競技である
CTFのジャンル
• Web
• ウェブサイトに対して攻撃
• Crypto
• 暗号化されたものを復号させる
• Pwn
• プログラムの脆弱性に対して攻撃
• Rev
• リバースエンジニアリングして解析
• 他にも色々
CTFのジャンル
• Web
• ウェブサイトに対して攻撃
• Crypto
• 暗号化されたものを復号させる
• Pwn
• プログラムの脆弱性に対して攻撃
• Rev
• リバースエンジニアリングして解析
• 他にも色々
CTFの流れ
• コンテスト参加登録
• 当日参加
• 問題を開く
• ソースコードがあれば読む
• 脆弱性をつく
• Flagを入手
典型的な脆弱性について
• ディレクトリトラバーサル
• SQL injection
ディレクトリトラバーサル
• 本来意図していない箇所のファイルを読み込む攻撃
ディレクトリトラバーサル
現在のパス
/usr/share/nginx/html/
ディレクトリトラバーサル
→
ディレクトリトラバーサル
/usr/share/nginx/html/
+ ”divine-comedy.txt”
ディレクトリトラバーサル
ディレクトリトラバーサル
../
一つ上の階層
ディレクトリトラバーサル
/usr/share/nginx/html/
+ ”../../../../flag.txt”
ディレクトリトラバーサル
→
SQL injection
• 入力フォームに対してSQL文を含ませる
• 意図していないDBへの操作が行われてしまう
IPA 安全なウェブサイトの作り⽅ ‒ 1.1 SQLインジェクション https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_1.html
SQL injection
SQL injection
→
SQL injection
• SELECT * FROM users WHERE name=‘a’ AND password=‘a’
nameとpasswordが一致
していればログインできる
SQL injection
• SELECT * FROM users WHERE name=‘’’ AND password=‘a’
入力に’を入れるとname=‘’となって
その後にクエリを書くことができる
SQL injection
• SELECT * FROM users WHERE name=‘’
’ AND password=‘a’
緑の四角の箇所にクエリを追加できます
SQL injection
• SELECT * FROM users WHERE name=‘’
OR 1=1
’ AND password=‘a’
OR 1=1とすることで常にtrueとなる
SQL injection
• SELECT * FROM users WHERE name=‘’
OR 1=1
’ AND password=‘a’
残り物が出てしまう
SQL injection
• SELECT * FROM users WHERE name=‘’
OR 1=1 --
’ AND password=‘a’
--を付けることで後ろがコメントアウト
される
SQL injection
→
CTFしてみたい!
• picoCTF
• SQLiLite
• Forbidden Paths
• いつでも遊べます
えっ今日はハッキングしてもいいのか!
• ああ…しっかりハッキングしろ
• モグモグ…
• おかわりもいいぞ!
• …
• 遠慮するな今までの分ハッキングしろ…
• うめ うめ うめ
CSIRTアラートを開始する!!
SU-CSIRT:Shizuoka University Computer
Security Incident Response Team です。
機器から異常通信が検出されました。
対応をお願いします。
学内でのCTF参加は控えましょう(2敗)
本当にごめんなさい
さいごに
• CTFはセキュリティ周りの知識がつくし楽しい
• 防御だけじゃなく攻撃者目線が知れる
• 倫理観を持ったエンジニアになりましょう
• 大学内ではCTF控えてね

えっ今日はハッキングしてもいいのか?(CTF Web入門)