作成日:2024-02-27
The web project was rushed and no security assessment was done. Can you read the /etc/passwd file?
まずはブラウザでリクエスト
Detailsはなんかクリックできる
クリックしたらなんか出てきた
よくわかんないからBurpのProxyで確認
Detailをクリックしたときに以下のリクエストが行われている
xml使ってるのはわかる
タイトルが「SOAP」だったので一応しらべてみる。
応用情報や支援士の試験で聞いたことある〜
「SOAP /etc/passwd」で検索
一番上にBurp作ってる会社の記事が出てきた↓
これやん笑
そのとおりにやったらできた↓
一応これが何なのかを調べてみた。
XXEはXML External Entity の略称
XXE攻撃、XXEインジェクションともいう
XMLにはDTD(Document Type Definition)と呼ばれるXMLの構造を定義するための構文がある。
それがこれ↓
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<!ENTITY>というタグで実体宣言が行われている
上記では、xxeに/etc/passwdファイルの内容をxxeというエンティティとして宣言している。
そのxxeを今回の問題に合わせてIDタグの中で使用しリクエストをする
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]> <data> <ID> &xee; </ID> </data>
&変数名;で使えるっぽい。
fooの部分はよくわかんない。なんでもいいっぽい
応用情報などでSOAPは聞いたことあったけど、こんな感じで使うのかぁって思った。
問題が/etc/passwdを見るという問題だったからディレクトリトラバーサルかと思ったけど違った。
リクエストにxmlが使われていたらXXEを使った攻撃があるという知識がついて、選択肢が広がった気がする。
Profile
地方公立大学院修士2年。
今年は「知識の幅を縦に広げること」が目標で、低レイヤ、OS、ミドルウェア、コンテナ、ネットワーク、データベース、SEO対策の勉強しています。
情報処理安全確保支援士と応用情報は合格しています。
研究として楕円曲線暗号、耐量子暗号、格子暗号や格子基底簡約アルゴリズム、同種写像暗号について学習しています。
普段はアルバイトでFlutter/Go/GCP/Next.js/Reactを使っています。