HOME»応用情報技術者試験掲示板»令和3年春期午後問1
投稿する
AP掲示板とDBの掲示板の投稿制限処理は同じです。
海外からのスパムや適当にタイプしただけのイタズラを防止するために、半角文字(ASCII文字)だけの本文について投稿を拒否するようになっております。こちらのフィルタにより投稿できなかったのでしょう。
SQL文がDB試験.comの方のWAF(サイトを限定してONでも問題ないかテストしていた)に引っ掛かり、リクエストベースではじかれてしまっていたようです。
セキュリティ上はWAFを動作させた方がいいのですが、掲示板の利便性を考慮すると単純にONにすればいいというわけにもいかず、難しいところです。
令和3年春期午後問1 [2705]
mikeさん(No.1)
https://www.ap-siken.com/kakomon/03_haru/pm01.html
最後の解答のDNSキャッシュポイズニング、という解答ですが、DNSをつけずにキャッシュポイズニング攻撃、という解答ではどこへの攻撃か不明なため不正解でしょうか
最後の解答のDNSキャッシュポイズニング、という解答ですが、DNSをつけずにキャッシュポイズニング攻撃、という解答ではどこへの攻撃か不明なため不正解でしょうか
2021.08.07 10:12
GinSanaさん(No.2)
★AP プラチナマイスター
Webキャッシュポイズニング(JVNVU#98141012)とかと区別がつきませんからねえ。ダメですな。
2021.08.07 13:23
AgentTakaさん(No.3)
★AP シルバーマイスター
mikeさん
GinSanaさん
こんばんは
Webキャッシュポイズニング!?
初耳です、、、
他にもARPキャッシュポイズニングというのもあるみたいですね、、、
知らなかったことにしておきます。わははは
GinSanaさん
こんばんは
Webキャッシュポイズニング!?
初耳です、、、
他にもARPキャッシュポイズニングというのもあるみたいですね、、、
知らなかったことにしておきます。わははは
2021.08.07 21:41
GinSanaさん(No.4)
★AP プラチナマイスター
AgentTakaさん
HTTPヘッダインジェクションはよくあるから知られていますが、その中でIPAも出してますが
https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_7.html
キャッシュサーバのキャッシュ汚染があります。これをHTTPキャッシュポイズニングとも言うんですが(遠隔から細工したHTTPヘッダを使用して任意のコンテンツをプロキシサーバのネットワーク(CDN)のキャッシュに注入するとか)、特にCloudflareとかみたいなとこは自衛しないとね、ってなるわけですよ。
ARPキャッシュポイズニングは支援士の29年春の午後1問1でありましたけど、
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2017h29_1/2017h29h_sc_pm1_qs.pdf
MACアドレスの対応関係をちょろまかしちゃうんですよ。偽物にMACアドレスを結んで、そのアドレスが問われたときに偽物がそれだ、って返しちゃうようにするんですよ。
HTTPヘッダインジェクションはよくあるから知られていますが、その中でIPAも出してますが
https://www.ipa.go.jp/security/vuln/websecurity-HTML-1_7.html
キャッシュサーバのキャッシュ汚染があります。これをHTTPキャッシュポイズニングとも言うんですが(遠隔から細工したHTTPヘッダを使用して任意のコンテンツをプロキシサーバのネットワーク(CDN)のキャッシュに注入するとか)、特にCloudflareとかみたいなとこは自衛しないとね、ってなるわけですよ。
複数のレスポンスに分割し、任意のレスポンスボディをリバースプロキシ等にキャッシュさせることにより、キャッシュ汚染(ウェブページの差し替え)を引き起こし、ウェブページの改ざんと同じ脅威が生じます。
この攻撃を受けたウェブサイトにアクセスする利用者は、この差し替えられた偽のウェブページを参照し続けることになります。
クロスサイト・スクリプティング攻撃のように、攻撃を受けた直後の本人のみが影響を受ける場合に比べ、キャッシュ汚染による脅威は、影響を受ける対象が広く、また永続的であることが特徴です。
この攻撃を受けたウェブサイトにアクセスする利用者は、この差し替えられた偽のウェブページを参照し続けることになります。
クロスサイト・スクリプティング攻撃のように、攻撃を受けた直後の本人のみが影響を受ける場合に比べ、キャッシュ汚染による脅威は、影響を受ける対象が広く、また永続的であることが特徴です。
ARPキャッシュポイズニングは支援士の29年春の午後1問1でありましたけど、
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2017h29_1/2017h29h_sc_pm1_qs.pdf
MACアドレスの対応関係をちょろまかしちゃうんですよ。偽物にMACアドレスを結んで、そのアドレスが問われたときに偽物がそれだ、って返しちゃうようにするんですよ。
2021.08.07 22:14
AgentTakaさん(No.5)
★AP シルバーマイスター
GinSanaさん
こんばんは
ご丁寧な解説に感謝申し上げます。
GinSanaさんの知識量と引き出しの多さには脱帽でございます。まいりました。
正直、こんなにもレベルが違うなんて、、、
GinSanaさんこそゴールドエキスパート、しかも殿堂入りが相応しいです。
(No.4)を理解するのに少しお時間頂けますでしょうか、、、
時間が解決するとも思えないんですが、、、わははは
こんばんは
ご丁寧な解説に感謝申し上げます。
GinSanaさんの知識量と引き出しの多さには脱帽でございます。まいりました。
正直、こんなにもレベルが違うなんて、、、
GinSanaさんこそゴールドエキスパート、しかも殿堂入りが相応しいです。
(No.4)を理解するのに少しお時間頂けますでしょうか、、、
時間が解決するとも思えないんですが、、、わははは
2021.08.07 22:44
GinSanaさん(No.6)
★AP プラチナマイスター
この投稿は投稿者により削除されました。(2021.08.08 20:14)
2021.08.08 20:14
GinSanaさん(No.7)
★AP プラチナマイスター
この投稿は投稿者により削除されました。(2021.08.08 20:15)
2021.08.08 20:15
GinSanaさん(No.8)
★AP プラチナマイスター
デスペの掲示板でSQLが書けなかったのでちょっと説明として仮置きさせてください。
AP試験.comとdb試験comじゃ弾かれちゃうんだな。
www.db-siken.com/bbs/0188.html
sqlfiddleのoracle11gでテストしてみましょう。ほんとはDDL定義なんかいらないんだけど、仕様的にいるので適当に宣言しました。
JYUBAN KAIBAN NENGAP JI FUN USEDEN JYUBAN USRB
100 2 20210808 23 59 10000 100 user001
100 1 20210808 10 30 6000 100 user001
300 1 20210830 23 59 60000 300 user003
ちなみに
select route_01.*, jyuko.*
from jyuko
left join
route_01
on
route_01.jyuban = jyuko.jyuban;
にすると
JYUBAN KAIBAN NENGAP JI FUN USEDEN JYUBAN USRB
100 1 20210808 10 30 6000 100 user001
100 2 20210808 23 59 10000 100 user001
300 1 20210830 23 59 60000 300 user003
(null) (null) (null) (null) (null) (null) 200 user002
になるのでこれはやってはいけません
その点でINNER JOINはどっちでも正しい答えが返ってくるので回答を書く上で迷いがなくなるわけです。
AP試験.comとdb試験comじゃ弾かれちゃうんだな。
www.db-siken.com/bbs/0188.html
sqlfiddleのoracle11gでテストしてみましょう。ほんとはDDL定義なんかいらないんだけど、仕様的にいるので適当に宣言しました。
create table jyuko (jyukobangou number, userbangou varchar2(10));
with jyuko as (
select
100 as jyuban,
'user001' as usrb
from dual
union all
select
200 as jyuban,
'user002' as useb
from dual
union all
select
300 as jyuban,
'user003' as usrb
from dual
)
, shiden as (
select
100 as jyuban,
1 as kaiban,
'20210808' as nengap,
10 as ji,
30 as fun,
6000 as useden
from dual
union all
select
100 as jyuban,
2 as kaiban,
'20210808' as nengap,
23 as ji,
59 as fun,
10000 as useden
from dual
union all
select
300 as jyuban,
1 as kaiban,
'20210830' as nengap,
23 as ji,
59 as fun,
60000 as useden
from dual
union all
select
300 as jyuban,
4 as kaiban,
'20210908' as nengap,
23 as ji,
59 as fun,
10000 as useden
from dual
union all
select
200 as jyuban,
2 as kaiban,
'20211231' as nengap,
23 as ji,
59 as fun,
1000000 as useden
from dual
)
, route_01 as (
select * from shiden
where substrb(nengap,1, 6) = '202108'
)
select route_01.*, jyuko.*
from route_01
left join
jyuko
on
route_01.jyuban = jyuko.jyuban
with jyuko as (
select
100 as jyuban,
'user001' as usrb
from dual
union all
select
200 as jyuban,
'user002' as useb
from dual
union all
select
300 as jyuban,
'user003' as usrb
from dual
)
, shiden as (
select
100 as jyuban,
1 as kaiban,
'20210808' as nengap,
10 as ji,
30 as fun,
6000 as useden
from dual
union all
select
100 as jyuban,
2 as kaiban,
'20210808' as nengap,
23 as ji,
59 as fun,
10000 as useden
from dual
union all
select
300 as jyuban,
1 as kaiban,
'20210830' as nengap,
23 as ji,
59 as fun,
60000 as useden
from dual
union all
select
300 as jyuban,
4 as kaiban,
'20210908' as nengap,
23 as ji,
59 as fun,
10000 as useden
from dual
union all
select
200 as jyuban,
2 as kaiban,
'20211231' as nengap,
23 as ji,
59 as fun,
1000000 as useden
from dual
)
, route_01 as (
select * from shiden
where substrb(nengap,1, 6) = '202108'
)
select route_01.*, jyuko.*
from route_01
left join
jyuko
on
route_01.jyuban = jyuko.jyuban
JYUBAN KAIBAN NENGAP JI FUN USEDEN JYUBAN USRB
100 2 20210808 23 59 10000 100 user001
100 1 20210808 10 30 6000 100 user001
300 1 20210830 23 59 60000 300 user003
ちなみに
select route_01.*, jyuko.*
from jyuko
left join
route_01
on
route_01.jyuban = jyuko.jyuban;
にすると
JYUBAN KAIBAN NENGAP JI FUN USEDEN JYUBAN USRB
100 1 20210808 10 30 6000 100 user001
100 2 20210808 23 59 10000 100 user001
300 1 20210830 23 59 60000 300 user003
(null) (null) (null) (null) (null) (null) 200 user002
になるのでこれはやってはいけません
その点でINNER JOINはどっちでも正しい答えが返ってくるので回答を書く上で迷いがなくなるわけです。
2021.08.08 20:15
AgentTakaさん(No.9)
★AP シルバーマイスター
GinSanaさん
こんばんは
もはやついていける話題でないっす。異次元っす。
わははは
質問者様も置き去りでぶっちぎっちゃいましたね。
わははは
所々日本語混ざっているのは分かるんですが他の部分、解読不可能でーーーーす。
申し訳ございません、、、
わははは
この調子だと秋も不合格ですかね、、、わははは
こんばんは
もはやついていける話題でないっす。異次元っす。
わははは
質問者様も置き去りでぶっちぎっちゃいましたね。
わははは
所々日本語混ざっているのは分かるんですが他の部分、解読不可能でーーーーす。
申し訳ございません、、、
わははは
この調子だと秋も不合格ですかね、、、わははは
2021.08.08 20:36
GinSanaさん(No.10)
★AP プラチナマイスター
AgentTakaさん
データベースは学生時代の数学とか算数と一緒で、1回覚えれば応用がすぐきくので
個人的には勉強すると応用でもいい得点リソースになると思うんですよね。全くのまっさらからやる人にはなかなかきびしいかもしれませんが・・・。
データベースは学生時代の数学とか算数と一緒で、1回覚えれば応用がすぐきくので
個人的には勉強すると応用でもいい得点リソースになると思うんですよね。全くのまっさらからやる人にはなかなかきびしいかもしれませんが・・・。
2021.08.08 21:23
AgentTakaさん(No.11)
★AP シルバーマイスター
GinSanaさん
おはようございます。
データベースですか。食わず嫌いかもしれませんが選択候補には入ってなかったです。
セキュリティ、ネットワーク、プロマネ、サビマネ、システム監査に力を入れております。
先日、「システム監査基準(平成30年)」を熟読した後でおさらいで午前問題に取り組みました。
するとなんということでしょう!問題がすごく簡単に感じたばかりか、解説の修正依頼も連発しちゃいました。
管理人様にはご迷惑かもしれませんが、、、。わははは。
管理人様ごめんなさい。
夏季休暇を優先してください。
必要ないとご判断されたなら削除して頂いても構いません。
おはようございます。
データベースですか。食わず嫌いかもしれませんが選択候補には入ってなかったです。
セキュリティ、ネットワーク、プロマネ、サビマネ、システム監査に力を入れております。
先日、「システム監査基準(平成30年)」を熟読した後でおさらいで午前問題に取り組みました。
するとなんということでしょう!問題がすごく簡単に感じたばかりか、解説の修正依頼も連発しちゃいました。
管理人様にはご迷惑かもしれませんが、、、。わははは。
管理人様ごめんなさい。
夏季休暇を優先してください。
必要ないとご判断されたなら削除して頂いても構いません。
2021.08.09 06:09
コーブーさん(No.12)
GINSANAさん
横から失礼いたします。
私は今回初挑戦ですが、高校時代は理系で数学はほぼ満点でしたけどデータベースはどうしても体が受けつけません。
このサイトでこの長文のSQLを出されてもどうかと思います。
それだけの知識があるのであれば階段を1段下がってのアドバイスをお願いいたします。
よろしくお願いいたします。
横から失礼いたします。
私は今回初挑戦ですが、高校時代は理系で数学はほぼ満点でしたけどデータベースはどうしても体が受けつけません。
このサイトでこの長文のSQLを出されてもどうかと思います。
それだけの知識があるのであれば階段を1段下がってのアドバイスをお願いいたします。
よろしくお願いいたします。
2021.08.09 22:33
GinSanaさん(No.13)
★AP プラチナマイスター
コーブーさん
ここをお借りしたのは、データベーススペシャリストのサイトの掲示板がまだSQL記述に対応していない(Select *ですら403が返ってくる)から、対応しているこちらをお借りしてデータベーススペシャリストの質問の解説に紐付けさせました。向こうが対応すれば消す予定です。
やっていることはサンプルデータのテーブルを中間テーブルとして起こしてDBSPの午後2で要求にあったWHERE句を足して結合したらどうなるかを検証しているだけなので、そこまでじゃないですよ。SQLは性質上長く見えるだけです。
質問の内容に合わせて回答の水準は私も変えていますよ。いっしょくたにこういう水準で回答をするわけではありません。
ここをお借りしたのは、データベーススペシャリストのサイトの掲示板がまだSQL記述に対応していない(Select *ですら403が返ってくる)から、対応しているこちらをお借りしてデータベーススペシャリストの質問の解説に紐付けさせました。向こうが対応すれば消す予定です。
やっていることはサンプルデータのテーブルを中間テーブルとして起こしてDBSPの午後2で要求にあったWHERE句を足して結合したらどうなるかを検証しているだけなので、そこまでじゃないですよ。SQLは性質上長く見えるだけです。
質問の内容に合わせて回答の水準は私も変えていますよ。いっしょくたにこういう水準で回答をするわけではありません。
2021.08.10 07:26
GinSanaさん(No.14)
★AP プラチナマイスター
まあ、だったら新規で質問を起こしてそこに書けよ、と言われれば確かにそうですので、そこは誤りでした。
2021.08.10 07:34
管理人(No.15)
> GinSanaさん
AP掲示板とDBの掲示板の投稿制限処理は同じです。
> (Select *ですら403が返ってくる)
海外からのスパムや適当にタイプしただけのイタズラを防止するために、半角文字(ASCII文字)だけの本文について投稿を拒否するようになっております。こちらのフィルタにより投稿できなかったのでしょう。
2021.08.10 11:08
GinSanaさん(No.16)
★AP プラチナマイスター
管理人さん
ご返信ありがとうございます。asciiのフィルタですか。
DBのほうに回答を移し替えておきます。
ご返信ありがとうございます。asciiのフィルタですか。
DBのほうに回答を移し替えておきます。
2021.08.10 11:46
GinSanaさん(No.17)
★AP プラチナマイスター
この投稿は投稿者により削除されました。(2021.08.10 11:55)
2021.08.10 11:55
GinSanaさん(No.18)
★AP プラチナマイスター
管理人さん
NO.08のテキスト(マルチバイト文字も含む)をすべてDBSPにはりつけても403が返ってくるのですが、原因が思いつきません。
(原因がわからなければ、質問事項自体は解決したので回答の説明だけ消そうと思っています)
NO.08のテキスト(マルチバイト文字も含む)をすべてDBSPにはりつけても403が返ってくるのですが、原因が思いつきません。
(原因がわからなければ、質問事項自体は解決したので回答の説明だけ消そうと思っています)
2021.08.10 11:57
管理人(No.19)
重ね重ねご不便をお掛けして申し訳ございません。
403エラーということは投稿内容ではなくIPアドレスベースまたはブラウザベースでのでのアクセス制限にかかっていることになります。それまでは投稿いただけていたと思うので送信元アドレスが変わって、たまたま制限対象のIPアドレスに該当してしまった可能性がございます。
明日調査させていただきますね。
>403
403エラーということは投稿内容ではなくIPアドレスベースまたはブラウザベースでのでのアクセス制限にかかっていることになります。それまでは投稿いただけていたと思うので送信元アドレスが変わって、たまたま制限対象のIPアドレスに該当してしまった可能性がございます。
明日調査させていただきますね。
2021.08.10 16:28
管理人(No.20)
>GinSanaさん
SQL文がDB試験.comの方のWAF(サイトを限定してONでも問題ないかテストしていた)に引っ掛かり、リクエストベースではじかれてしまっていたようです。
セキュリティ上はWAFを動作させた方がいいのですが、掲示板の利便性を考慮すると単純にONにすればいいというわけにもいかず、難しいところです。
2021.08.11 11:24
GinSanaさん(No.21)
★AP プラチナマイスター
管理人さん
ご説明ありがとうございます。原因がわかってなによりです。
DBSPなので、SQLは許容されているとやはり回答する側としては助かりますね。
ご説明ありがとうございます。原因がわかってなによりです。
DBSPなので、SQLは許容されているとやはり回答する側としては助かりますね。
2021.08.11 14:01