頭おかしすぎワロタ

詳細は例の先生のサイトで。

WordPress 4.7.1 の権限昇格脆弱性について検証した | 徳丸浩の日記
http://blog.tokumaru.org/2017/02/wordpress-4.7.1-Privilege-Escalation.html

なにこれ……

存在しないコンテンツが指定された場合、update_item_permissions_checkメソッドの様々なチェックをすべてくぐり抜け、メソッド最後のreturn文にて true が返されるところが恐ろしいですね。 しかし、この「存在しないコンテンツ」については、以下の update_item メソッドの 526行目にてエラーが返され、結果としては何もしない *はず* でした。

そもそもなんだけど、単なるblogシステム(昨今では中規模なCMSとしても使われてるけど)なんだからデフォでそんなどうでも良い機能は切っとけよっていう。

しかし読めば読むほど、自身も反省、いや慎重に書かなければなと思うことがある。それはキャストだ。静的型付でのコーディングが長い奴はJavascriptだとかphpだとかrubyだとかpythonだとかの動的型付言語でコーディングするときに不必要にキャストしてしまいやすい。はい、私もです。今回のWPの件は、キャストがどうこう以前の問題だとは思うが、不用意なキャストの前後でふるまいのチェックが疎かになる可能性が高そうだなと思ったのでわざわざ書いた。

楽だからWP選んだし(主にデザインとTwitter連携)、仕事やバイトでカスタマイズとか色々あるから面白いかなあと思ったけど、やっぱり趣味じゃないなーこれ。アホみたいにクエリ投げるし設計が20世紀だよ。近日中に捨てよう。

あー

次期VisualStudioから楽に開発ができるようになる、みたいな文をどこかで見たので、今やる必要は無いなーと素通りしてきたのだけど、暇なのでちょこっとだけやってみた。ががが、.net coreちゃん動くことは動くようだが、これ、まともにやろうとしたら俺のWindows開発の知識(VisualStudio & C#)じゃまるで足りないわ。

cent osに適当にググってきた方法でランタイムインストール→動作確認→OK。

VisualStudioにクソ重い各種SDKぶっこむ→ASP.net Core Web Application(.net core)でプロジェクト作れるようになる→ビルド→OK。

発行→うなるほどファイル吐き出す→OK。

ところが、これをcentosに持ってきたところでapacheと共存する方法がわからん。TCP port 55000とかで再ビルドしてみたが、WinでもCentでもウンともスンとも言わん。

吐き出したファイル一覧にビビったから貼っておきますね。これ、HelloWorld!をhttpで出力するだけです。


E:VISUALSTUDIOPROJECT\_2015WEBCORESRCWEBCOREBINRELEASEPUBLISHOUTPUT
│ Microsoft.AspNetCore.Diagnostics.Abstractions.dll
│ Microsoft.AspNetCore.Diagnostics.dll
│ Microsoft.AspNetCore.Hosting.Abstractions.dll
│ Microsoft.AspNetCore.Hosting.dll
│ Microsoft.AspNetCore.Hosting.Server.Abstractions.dll
│ Microsoft.AspNetCore.Http.Abstractions.dll
│ Microsoft.AspNetCore.Http.dll
│ Microsoft.AspNetCore.Http.Extensions.dll
│ Microsoft.AspNetCore.Http.Features.dll
│ Microsoft.AspNetCore.HttpOverrides.dll
│ Microsoft.AspNetCore.Server.IISIntegration.dll
│ Microsoft.AspNetCore.Server.Kestrel.dll
│ Microsoft.AspNetCore.WebUtilities.dll
│ Microsoft.Extensions.Configuration.Abstractions.dll
│ Microsoft.Extensions.Configuration.dll
│ Microsoft.Extensions.Configuration.EnvironmentVariables.dll
│ Microsoft.Extensions.DependencyInjection.Abstractions.dll
│ Microsoft.Extensions.DependencyInjection.dll
│ Microsoft.Extensions.FileProviders.Abstractions.dll
│ Microsoft.Extensions.FileProviders.Physical.dll
│ Microsoft.Extensions.FileSystemGlobbing.dll
│ Microsoft.Extensions.Logging.Abstractions.dll
│ Microsoft.Extensions.Logging.Console.dll
│ Microsoft.Extensions.Logging.dll
│ Microsoft.Extensions.ObjectPool.dll
│ Microsoft.Extensions.Options.dll
│ Microsoft.Extensions.PlatformAbstractions.dll
│ Microsoft.Extensions.Primitives.dll
│ Microsoft.Net.Http.Headers.dll
│ System.Diagnostics.Contracts.dll
│ System.Diagnostics.StackTrace.dll
│ System.Net.WebSockets.dll
│ System.Runtime.CompilerServices.Unsafe.dll
│ System.Text.Encodings.Web.dll
│ web.config
│ WebCore.deps.json
│ WebCore.dll
│ WebCore.pdb
│ WebCore.runtimeconfig.json

└─refs
Microsoft.CSharp.dll
Microsoft.VisualBasic.dll
Microsoft.Win32.Primitives.dll
System.AppContext.dll
System.Collections.Concurrent.dll
System.Collections.dll
System.ComponentModel.Annotations.dll
System.ComponentModel.dll
System.Console.dll
System.Diagnostics.Contracts.dll
System.Diagnostics.Debug.dll
System.Diagnostics.Process.dll
System.Diagnostics.StackTrace.dll
System.Diagnostics.Tools.dll
System.Diagnostics.Tracing.dll
System.Dynamic.Runtime.dll
System.Globalization.Calendars.dll
System.Globalization.dll
System.Globalization.Extensions.dll
System.IO.Compression.dll
System.IO.Compression.ZipFile.dll
System.IO.dll
System.IO.FileSystem.dll
System.IO.FileSystem.Primitives.dll
System.IO.FileSystem.Watcher.dll
System.IO.MemoryMappedFiles.dll
System.IO.UnmanagedMemoryStream.dll
System.Linq.dll
System.Linq.Expressions.dll
System.Linq.Parallel.dll
System.Linq.Queryable.dll
System.Net.Http.dll
System.Net.NameResolution.dll
System.Net.Primitives.dll
System.Net.Requests.dll
System.Net.Security.dll
System.Net.Sockets.dll
System.Net.WebHeaderCollection.dll
System.Net.WebSockets.dll
System.Numerics.Vectors.dll
System.ObjectModel.dll
System.Reflection.DispatchProxy.dll
System.Reflection.dll
System.Reflection.Extensions.dll
System.Reflection.Primitives.dll
System.Reflection.TypeExtensions.dll
System.Resources.Reader.dll
System.Resources.ResourceManager.dll
System.Runtime.dll
System.Runtime.Extensions.dll
System.Runtime.Handles.dll
System.Runtime.InteropServices.dll
System.Runtime.InteropServices.RuntimeInformation.dll
System.Runtime.Loader.dll
System.Runtime.Numerics.dll
System.Security.Claims.dll
System.Security.Cryptography.Algorithms.dll
System.Security.Cryptography.Encoding.dll
System.Security.Cryptography.Primitives.dll
System.Security.Cryptography.X509Certificates.dll
System.Security.Principal.dll
System.Security.Principal.Windows.dll
System.Text.Encoding.dll
System.Text.Encoding.Extensions.dll
System.Text.RegularExpressions.dll
System.Threading.dll
System.Threading.Tasks.Dataflow.dll
System.Threading.Tasks.dll
System.Threading.Tasks.Parallel.dll
System.Threading.Thread.dll
System.Threading.ThreadPool.dll
System.Threading.Timer.dll
System.Xml.ReaderWriter.dll
System.Xml.XDocument.dll