DVWAでOSコマンドインジェクション
注入つながりで、SQLインジェクションの次はOSコマンドインジェクションを試す。
続きを読むDVWAでブラインドSQLインジェクションを試す
つづいた。タイトルのまんまです。
続きを読むDVWAでSQLインジェクションを試す
タイトルのまんま。
このくらいなら有名ですし、どんな手順で学べばよいかウォームアップになるので。
SVGのプロパティがつかえない時はnamaspaceが設定されているか確認する
こんなHTML(一部分)があって
<div id="svg_wrapper"></div>
動的にSVG要素を用意していた
var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); var poly = document.createElementNS('http://www.w3.org/2000/svg', 'polygon'); // 中略 svg.appendChild(poly); var svg_wrapper = document.getElementById('svg_wrapper'); svg_wrapper.appendChild(svg);
使っているある外部ライブラリに、SVGを構成する文字列を渡すメソッドがあった。
こんな感じに。
extarnal_module.func(svg_wrapper.innerHTML);
ところが処理中に、SVGのpoints属性がないためエラー、とのこと。 内部では渡した文字列をDOMparserでDOMに変換して作業してる模様。
なにがダメだったかというと名前空間が定義されてなかったから。 文字列からSVG要素であるDOMに変換するには事前にルートSVG要素で名前空間を定義してないと、ただのHTMLないしはXMLと解釈されてしまう。
雑にユーティリティ関数作って対処
var createElementSVG = function () { var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg'); svg.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink'); svg.setAttributeNS(null, 'version', '1.1'); return svg; };
createElementNSからつくったDOMは、ルートSVGタグの名前空間がどうであれ、
そのメソッドの第一引数に渡した名前空間が適用されるためSVGに関わる属性が使える。
あっちでつかえてこっちで使えなかったため、何が原因かわかるのに1日溶かしてしまった。
ああ、情けない。
wgetコマンドでApacheのファイル一覧以下のファイルをダウンロード
wget -e robots=no -i server.list -nc -S -w 10 --random-wait -r -A pdf -np
以下、メモ書き。
-e: `.wgetrc'形式のコマンドを実行。 このコマンドでrobots.txtを読みに行かない。
-i:ファイルに書かれたURLよりダウンロードを行う。 ファイルは1行ごとにURLが書かれている。
-nc: 存在しているファイルを上書き保存しない。 再帰ダウンロード中に通信が切れても途中から再開できる。
-S: サーバーからの応答を表示。 エラーが出た時の確認用。
-w [秒数]: 待機秒数。
--random-wait: 待機秒数を 0.5*[秒数]〜1.5*[秒数]の間でランダムに変える。
-r: 再帰ダウンロードを行う。取得したHTMLのリンクをたどる。
-A [拡張子1[,拡張子2 ...]]: コンマ区切りでダウンロードしたいファイルの拡張子を指定。
-np: 親ディレクトリを取得対象にしない。これで「Parent Directory」を取得対象から外す。