人生モラトリアム

死ぬまでの暇つぶし

bwapp A1 Injection

最近セキュリティに興味を持ち始めて

qiitaを色々見ていたところ、

OSCPという資格に

「セキュリティ未経験で受験して合格した!」

というのを見て

 

// OSCP!?、なにそれカッコイイ!

// 俺もハッカーになりたい!

 

と思いWEBのセキュリティについて勉強することにした。

(と言っても飽きたらすぐやめる可能性大)

 

とりあえず、

プログラミングに関してはJavaを2年ほど

実務経験積んだので

全然わからないってことはないだろう。

ネットワークに関しても

AWSでEC2インスタンス立てたり

実務でアプリのリリースとか

していたので、まぁいいかと。

 

とりあえずは

徳丸本を読みながら

それに対応する脆弱性

bWAPPというやられアプリで

とにかく試してみるのが良いんかなと思った。

 

ということで

bWAPPのA1 Injectionでやったことをここに記録する。

 

SQL Injection (GET/Search)



徳丸本でいうと

SQL インジェクションによる認証回避

のところに書いてある

‘ OR ‘a’=‘a

を使う。

 

実際に入力する文字列としては

' OR '1' = '1' --'

と入力する。

'「シングルクォーテーション」が

SQLの文字リテラルの終端になるため

SELECT * FROM テーブル名 WHERE title = '' OR '1' = '1' --'

というSQLが実行されるかと思う。

-- 以下はコメントとして無視される。

 

SQL Injection (GET/Select)

パラメータとして

movieを受け取っているようです。

 

movieというカラムがあるのか

調べてみます。

恐らくmoviesテーブルのidをパラメータとして

受け取っているみたいですね。

 

idは数値リテラルのようなので、

徳丸本の

数値項目に対するSQLインジェクション

をやってみます。

変数に型の制約がないスクリプト言語(PHPなど)で

数値を想定した変数に数値以外が入る場合があるらしいです。

 

全データを取ろうとしましたが、

取れないみたいですね...

 

 

order by で数値を入力すると

数値に対応したカラムで並び替えられるらしいです。

 

 

UNION SELECTもやってみました。

 

http://localhost/sqli_2.php?movie=1+UNION+SELECT+id%2Ctitle%2Crelease_year%2Cgenre%2Cmain_character%2Cimdb%2Ctickets_stock+FROM+movies%3B&action=go

 

実際にDBで実行すると

全データ取得できるのに、

パラメータで指定すると

取得できませんでした...

 

次に、

information_schemaを

使ってみます。

http://localhost/sqli_2.php?movie=1+UNION+SELECT+table_name%2Ccolumn_name%2Cdata_type%2Cnull%2Cnull%2Cnull%2Cnull+FROM++information_schema.columns%3B--&action=go

 

何も出ない...

 

http://localhost/sqli_2.php?movie=1+UNION+SELECT+gRoUp_cOncaT%280x7c%2Cschema_name%2C0x7c%29%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull%2Cnull+FROM++information_schema.schemata%3B--&action=go

 

これもダメでした...

 

最終的に

色々調べてバージョン、スキーマ名がわかりました。

AND 1=2 UNION SELECT ~の部分がいまいちよく分からない。

ソシオニクス診断してみた

最近Java Gold取りました。

 

取ったことによって、

さらにJavaというか

オブジェクト指向がわからなくなってしまいました。

 

順当に行けば

デザインパターンかEffective Java

やるしかないんだろうなぁ...

 

来月は4月、

別れ・新生活のシーズンということで

自分も今の案件が終了して

新しい案件に参画するらしい。

 

しかし、いまだに

参画案件が決まっていない。

もしかしたら、クビかも...

 

今やっている案件が一区切りついたので

今一度自分の弱点について考えてみたが、

計画性という点において

一般的な3年目ITエンジニアと比較すると

劣っている気がする。

 

特に、自分の判断で作業を進行してしまい

後戻りするということが未だにたまにある。

 

これについては、

自意識・自我の強さが根本的に関係していると思う。

自分で考えて、

自分で実行したいという気持ちが強い。

 

こういう傾向から

「やはり自分はINFPなのではないか?」と思い、

初めてソシオニクス診断というものをやってみた。

 

結果

 

ILE、IEI、SEEの順になっていた。

 

それぞれmbtiと対応するのは、

 ILE → ENTP

 IEI  → INFP

 SEE  → ESFP

らしい。 

 

P・Nはおそらく確定しているが

IなのかEなのか、

TなのかFなのか、

がいまいち固まっていないっぽい。

コードレビューをやっているのに保守性・可読性の重要性に気づかないバカがいることを知ってほしい

今の現場に配属されてから約2年

やっと保守性とか可読性の重要性に気づくことができた。

 

「2年掛かって、お前まだその段階なのかよ...」と呆れられるかもしれないが、

本当のバカはこのくらいかかると言うことをレビューする立場の方は理解しておいてください。

 

そもそもなぜこの段階に至るまでに2年も掛かってしまったのか。

  1. 言語の仕様を理解していない
  2. レビューされた内容は保守性・可読性などの枝葉の部分・具体例を提示しているので、自分のような原理原則というか大元のマインドを知りたい人には伝わっていない
  3. 保守性・可読性の指針となるようなマインド(コード規約?)が存在しなかった
  4. 保守性・可読性の指針となるようなマインドが統一されていない

 

こんなところですかね...

チームリーダーやレビュアーの方は、こういう自分のようなバカもいるということを念頭においていて欲しいと思います。

 

追記 2024/02/14

保守性とか可読性を意識し始めて、最近「リーダブルコード」を読み始めた。

確かにな、と思う点もあるけど

保守性が上がる → 修正しやすくなる →

生産性が上がる → 仕事が早く終わるので一人月でのタスクが増える

 

結局、タスクが増えたことによって給料は上がるのかって話

 

あと、絶対的な保守性とか可読性のような、

科学的に人間の脳に理解しやすいエビデンスに基づいたものってないのかな。

 

それがないとしたら、単なる一個人の感覚によるものになってしまわないか...

 

最大公約数的にわかりやすい、とかならコードを書いている本人が

そこから外れた感覚を持っていた場合、保守性とか可読性ってすごく難しいものなんじゃないか...

転職したいなぁ

未経験でプログラマーとして今の会社に入ってから、2年3ヶ月経った。

研修が終わってから今の今まで同じ現場にいて、最近は見積もり出すところからやらせてもらえるようになって一応資格も取って順調に来ている気がしないでもない。

でも、こんなに時間が経っていてメンバーもほぼ入れ替えがないのにも関わらず

コミュニケーションがうまく出来ていない気がする。

自分では出来ているつもりだし自己開示も出来る限りしているなのに

intp特有の「何を考えているか分からない不思議な人」とよく言われるし。

個人的には、将来的にシステムアーキテクト的な

上流工程から関わって要件定義していく仕事をやりたいけど

どうも今の感じだと先が見えてこない。というか無理なのかも。

まぁ、無理だったら起業するか。

 

 

ダダサバイバー チャプター57

 

久しぶりにソシャゲにハマってしまった。

ダダサバイバー。

最初は広告と実際の内容が著しく乖離したよくあるソシャゲかと思ったら、広告のより意外と奥が深くて面白い。

パクリ元であるヴァンパイヤサバイバーをsteamでやっていたのもあり、ゲーム性の親しみやすさと、ソシャゲなのに課金すればするほど強くなるとは一言で言い切れず武器の種類もそんなに多くないところが牧歌的で良い。

 

そんなゲームにかれこれ4、5万くらい使ったが、2週間くらいチャプター47をクリア出来ないでいた。が、さっきやっとクリアできた。

 

ゲームオーバーになって再挑戦した回数が多分今までクリアした面の中で1番多かったと思う。30回はやったかな。

12分目くらいまでは割と楽に進められるけど、

そこから青いトカゲが大量発生する区間

追尾の炎を吐いてくるデカいトカゲ、

それを乗り越えた先に待っているカイチョウ

 

難易度の高低差がありすぎて耳キーンなるわ!と言いたくなるレベル。

クリアまでに赤破壊の力で挑戦したり、ヴァルマー解放したりしたけどライトチェイサーのイボルブ素材の鎧とガイドブック、足を軽量シューズにしてHP増し+70%軽減でやったら勝てました。たぶんこれが一番楽。

 

 

中野の豚山

久しぶりに二郎系食べたいなと思って、

図書館の帰りに豚山に行った。

えどもんどにも行きたかったけど、時間的に開くまで結構あったので行き慣れている店に決めた。

こぶた、コールはいつもの全マシ

本当にちょうどいい二郎感、80%の味がいつでも食べられるのは嬉しい。

 

あと店員の方が女性で、めちゃくちゃ齋藤飛鳥に似ててビビった

先日半年に一度の評価面談みたいなのを受けて事前に自分が入力した項目ごとの評価について上長と話したりした。上長的にはもっと成長して自分の待遇を良くして行って欲しいと言われたけど、待遇が良くなったら自分にとってどう影響があるのか。

もちろん給料が上がるにつれて生活水準が上がるし、生活に余裕が出てくるだろう。

 

で?生活水準が上がるとどうなるのか。

年収が上がれば色々できるし貯金もできるし老後の蓄えにもなる。

だから何なんだって思う。

 

別に無敵の人になろうとか、共産主義を望んでいるわけではないけど社畜、というかお金を稼ぐことって本当に虚しいことだと思う。

 

宗教とか変な思想にも興味はないけど。