> For the complete documentation index, see [llms.txt](https://kabinet.gitbook.io/ctf-writeup/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kabinet.gitbook.io/ctf-writeup/2023/dart-ctf/flag-4.md).

# Flag 4

Recalling that in [Flag 2](/ctf-writeup/2023/dart-ctf/flag-2.md), I found 2 valid endpoint for the `Logic App`.

Visiting `Action` allow me to get Flag 4

{% code overflow="wrap" %}

```
https://prod-61.eastus.logic.azure.com/workflows/250827f3ebc54c368f85643619f38ce3/triggers/manual/paths/invoke/action?api-version=2018-07-01-preview&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=avLLG0xOCALGGT-7zmIJsddcUiL5o2GOijT4mPSA4JY
```

{% endcode %}

{% code overflow="wrap" %}

```python
import requests

def retrieve(code):
    if code:
        response = requests.get(f'https://rosarray.azurewebsites.net/api/Canister?code={code}')

        if response.status_code == 200:
            results = response.json()
            return results
        else:
            return {
                "error": {
                    "message": "Oops! Something went wrong. Please try again later.",
                    "code": "500"
                }
            }
    else:
        return {
            "error": {
                "message": "Please provide a appropriate value to access the endpoint.",
                "code": "400"
            }
        }


code = "7CIzVAz1-SRtgbuwRG-PMTnL_BYbDhGaXrU-S-ZTEpDGAzFuCDmwrA=="
results = retrieve(code)
if "error" in results:
    print(f"Error: {results['error']['message']} ({results['error']['code']})")
else:
    print(f"Found {len(results)} results for '{code}':")
    for result in results:
        print(result)
Flag 4 : Adjust spacecraft altitude by 5 degrees.
```

{% endcode %}

Flag 4 : Adjust spacecraft altitude by 5 degrees.
