回答編集履歴
1
追記
test
CHANGED
@@ -33,3 +33,39 @@
|
|
33
33
|
|
34
34
|
|
35
35
|
純粋に技術的な興味からくる実験だとは思いますが、最終的には攻撃手法の解説やヘルプになってしまう恐れはありますので、回答としてはこの辺にしておきます。そもそも回答として外していたらごめんなさい。
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
---
|
40
|
+
|
41
|
+
**質問者さんの補足を受けて追記しました:**2019-01-23 09:55
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
> strcpyが文字列として認識するのが入力値のsystem関数のアドレスの6バイト目までとなってしまい
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
つまりは`perl -e ...`での実行結果をコマンドライン文字列として`main`で受け取っていて、その生成されたコマンドラインオプションの文字列が途中で`'\0'`を含んでしまっているので、`strcpy`で途中までしか取り込めない、と言うことでしたか。理解しました。
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
実験の主旨からするとコマンドラインから指定するのが必須要件ではないはずです。perlのスクリプトを使っているのは「便利だから」程度の理由だと思いますが、プログラム中で定数で指定してしまっても実験はできるはずですし、あくまで「外部から入力したい」と言うことであればパラメータを渡す方法はいくらでも考えられます。※どのような方法があるかは課題としてご自分で考えてみてください。
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
> また、この実験はCTFに参加してみたく行ったものなので、悪意ある攻撃のためではありません。
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
個人的には低レイヤーでかつ、セキュリティ系に興味を覚える方は少なく、(良い意味での)貴重な将来の人材と成り得るとは思っているので、若干の警戒はあるものの全面的に疑っている訳ではありません。ただ、別回答にもありましたが、どんな内容が悪用されるか分かりません。初心者レベルの攻撃でも、例えば子供でも刃物を持ってうろついていたら保護されるように、初心者レベルのプログラムでも意図した攻撃や誤用で罪になることも考えられます。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
ご存知だとは思いますが:
|
66
|
+
|
67
|
+
[警視庁 - 不正指令電磁的記録に関する罪](http://www.keishicho.metro.tokyo.jp/smph/kurashi/cyber/law/virus.html)
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
今に始まったことではありませんが、teratailをはじめ、公共の目にとまりやすいWEBサイトでそのような情報を共有すること自体がリスクになっているので、慎重にならざるを得ません。
|