Some notes of Microsoft Exchange Deserialization RCE (CVE-2021–42321)

  • strictMode = false
  • allowList = System.DelegateSerializationHolder
  • allowedGenerics = null
  • Nếu như strictMode = false, class hiện tại không nằm trong allow list, và class này nằm trong blacklist => throw InvalidOperationException().
  • Mặc dù đoạn code này nằm trong try catch statement, nhưng phần catch nó không có catch InvalidOperationException mà chỉ catch BlockedDeserializationException.
  • Do vậy, nếu nhánh (1) throw InvalidOperationException thì cũng coi như việc xử lý sẽ kết thúc, và data sẽ không được deserialize nữa
  • Step 1: Tạo UserConfiguration có chứa BinaryData = GadgetChain
  • Step 2: Gọi tới GetClientAccessToken để trigger Deserialization
  • payload gen được sẽ rất dài
  • Microsoft Exchange 2019 CU10, 11
  • Microsoft Exchange 2016 CU21, 22

--

--

--

asdasd asdasdasd asdasdasd

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jang

Jang

asdasd asdasdasd asdasdasd

More from Medium

SCHOTEX’s Token Contract Has Been Fully Developed and Deployed

Baby Samo Genesis NFT Staking Post Mortem: Emissions Exploit Dec 27

Accessifi Debugging Campaign Results

Entropyfi < > Barnbridge Exclusive $ERP Mining Campaign