This wiki's mission is to be a one stop resource for fully identifying, exploiting, and escalating SQL injection vulnerabilities across various Database Management Systems (DBMS). This wiki assumes you have a basic understanding of SQL injection, please go here for an introduction if you are unfamiliar. Below is an outline of the wiki's structure, laid out in the order of a normal escalation path.
12/9~12/10に開催したSECCON 2017 Online CTFに参加いたしました! vulsというチームで参加して、最終結果は46位でした。 私はWeb問をメインで担当していました。 今回はちょっと日曜日に所用があったため、残念ながらフル参戦できなかったのですが、久々にオフラインで集まって、昨年と同じようにレッドブル片手にピザを食べながらCTFをやることができてすごく楽しかったです! 折角なので、少ないのですが私が解いた問題のWrite UPについて今回ブログに書こうかと思います。 SqlSRF (400 points) 今回私が解いたのは「SqlSRF」という問題です。 問題名からして、見た瞬間に多分SQLインジェクションとSSRFをさせる問題なんだろうなと推測しましたが、結果的にいうとその通りの問題でした。 問題には、以下のような記載があって、URLが記載されています。 T
はじめに 環境構築 インストール データベース設定 データベース・テーブル初期化 動作確認 Less-1 (GET - Error based - Single quotes - String) Less-5 (GET - Double Injection - Single Quotes - String) Less-10 (GET - Blind - Time based - double quotes) level 1 ⇒ 失敗 Less-11 (POST - Error Based - Single quotes - String) Less-18 (POST - Header Injection - Uagent field - Error based) Less-23 (GET - Error based - strip comments) Less-53 (GET - Blin
2016.09.09 プロフェッショナルサービス事業部 寺田 健 (English version of this post is available here) ご存知の方もいるかと思いますが、MySQLはバージョン5.6, 5.7あたりから色々と挙動が変わりました。 この記事では、これらの変更のうちSQLiの検出/攻略方法に影響するものについて書きます。主に取り上げるのは、v5.6においてデフォルトのsql_modeに追加されたSTRICT_TRANS_TABLESモードについてです。 STRICT_TRANS_TABLESとは? STRICT_TRANS_TABLES(以下strictモード)は、MySQL(5.0.2以上)のsql_modeに含めることができるモードの一つです。このモードが有効の場合、MySQLは更新系のSQL文(例えばUPDATEやINSERT文)において、より厳
Introduction sqlmap is an open source penetration testing tool that automates the process of detecting and exploiting SQL injection flaws and taking over of database servers. It comes with a powerful detection engine, many niche features for the ultimate penetration tester and a broad range of switches lasting from database fingerprinting, over data fetching from the database, to accessing the und
ちょっとSQL Injectionについて未だに情報が少ないのにいらついていたので。 というか対策ばっかりで何ができますよーってのはほとんどログインできますよーくらいじゃねえか。 具体的な攻撃方法もわからずにぼんやり対策してるだけの人多いような気がするのでちょっと攻撃方法書いとく。 SQLインジェクションってなに? アプリのユーザ入力領域からSQL文を注入されてしまうこと。 サーバでこういうコード書いてると、user_nameに「' or '1'='1';#」とか書かれて素敵なことになる。(mysqlの場合) String sql = "SELECT * FROM users WHERE = name = '"+user_name+"' AND password='"+user_password+"'"; 簡単に言うと、開発者の意図しないSQLをユーザの入力によって行う攻撃手法ですね。 S
今回開催した SECCON 2020 Online CTF では kvdb を作問しました。 本記事では kvdb の簡単な説明を行います。 あと他に、レビューで解いた ptr-yudai プロ作問の kstack と lazynote の exploit を載せておきます。 kvdb (Pwn 470pt, 2 solves) 解説 および 解法 Exploit 実行結果 kstack (Pwn 393pt, 4 solves) 解法 Exploit lazynote (Pwn 227pt, 16 solves) 解法 Exploit 続きを読む SECCON Beginners CTF 2020 に参加してくださった皆様、ありがとうございました。 今回私は、pwn 問題の中難易度と高難易度の問題、flip と ChildHeap を作問しました。 前者は pwn ある程度慣れた人がやっ
このエントリでは、Time-based SQLインジェクション、すなわち時間差を利用したSQLインジェクションが意外に実用的だったという報告をします。デモ映像ありです。 はじめに Time-based SQL Injectionという攻撃があります。これはブラインドSQLインジェクションの一種で、ある条件の場合に一定時間(例えば5秒)スリープし、そうでない時との応答時間の差で情報を盗もうというものです。1回のHTTPリクエストで1ビットの情報が得られるので、それを積み重ねることによって、いくらでも情報を盗めるはずです…理論的には。 しかし、「理屈はそうでも、時間が掛かりすぎるよね」ということで、深くは追っかけていませんでした。SQLインジェクションの検査には有効でも、悪用としての実用性はあまりないと考えていたのです。 きっかけ きっかけは、以下のYahoo!知恵袋に以下の質問です。 SQL
ポイントは下記の通りです。 X社(原告)はセキュリティ対策について特に指示はしていなかった 損害賠償について個別契約に定める契約金額の範囲内とする損害賠償責任制限があった 当初システムはカード決済を外部委託し直接カード情報を扱っていなかった X社が「カード会社毎の決済金額を知りたい」とY社に依頼をして、その結果カード情報をいったんDBに保存する仕様となった(2010年1月29日) X社からの問い合わせに対してY社は、カード情報を保持しない方式に変更することが可能で、そのほうが安全となり、費用は20万円程度である旨を伝えた(2010年9月27日)が、その後X社は改良の指示をしなかった 以下の脆弱性その他が認められた システム管理機能のIDとパスワードが admin/password であった 個人情報が記載されたお問い合わせログファイルの閲覧が可能(ディレクトリリスティングと意図しないファイ
6. 脆弱性のあるアプリケーション Copyright © 2010-2014 HASH Consulting Corp. 6 @books = Book.where( "publish = '#{params[:publish]}' AND price >= #{params[:price]}") 山田 祥寛 (著) Ruby on Rails 4 アプリケーションプログラミング 技術評論社 (2014/4/11) に脆弱性を加えましたw ※元本に脆弱性があるわけではありません 7. UNION SELECTにより個人情報を窃取 Copyright © 2010-2014 HASH Consulting Corp. 7 priceに以下を入れる 1) UNION SELECT id,userid,passwd,null,mail,null,false,created_at,updated
7. 通常のWebサーバとの通信 <html> <body> <form action=“register” method=“POST”> 氏名:vultest<BR> メールアドレス:vultest@example.jp<BR> 性別:男<BR> (以下略) </html> POST /confirm.php HTTP/1.1 Host: example.jp (以下略) Cookie: PHPSESSID=xxxxxxxxxx name=vultest&mail=vultest%40example.jp&gender=1 HTTP Response HTTP Request 8. 色々いじってみてどういう応答があるか確認 POST /confirm.php HTTP/1.1 Host: example.jp (以下略) Cookie: PHPSESSID=xxxxxxxxxx name
Overview The Ruby on Rails web framework provides a library called ActiveRecord which provides an abstraction for accessing databases. This page lists many query methods and options in ActiveRecord which do not sanitize raw SQL arguments and are not intended to be called with unsafe user input. Careless use of these methods can open up code to SQL Injection exploits. The examples here do not inclu
例; (MS):MySQLとSQL Serevr (M*S):MySQLの特定バージョンや、関連する注意事項に記載されている特定条件に関するもの、およびSQLServerを示す。 目次 SQL Injection Cheat Sheatについて 文法のリファレンス、攻撃のサンプル、狡猾なSQLインジェクション小技 1行コメント SQLインジェクション攻撃のサンプル インラインコメント 典型的なインラインコメントSQLインジェクション攻撃のサンプル MySQLバージョン検出攻撃のサンプル 複文 複文をサポートする言語とデータベースの一覧 MySQLとPHPについて 複文によるSQLインジェクション攻撃のサンプル If命令文 MySQLのIf命令文 SQL ServerのIf命令文 If命令文を利用したSQLインジェクション攻撃のサンプル 数値の利用 文字列操作 文字列連結
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く