계속 failed만 뜹니당 ㅠㅠㅠㅠㅠ

xss를 트리거하는거까진 성공했는데
report에 POST하는 과정에서 어떤 문자열을 넣든지 failed가 뜨네요
어떻게 해결해야할까요...??

#web
작성자 정보
답변 1
avatar
limelee
웹해킹 초심자

access_page가 참일 경우 message 변수에 Success를 전달합니다.

if access_page(text, cookie={"name": "flag", "value": FLAG}):
                return render_template("report.html", message="Success")

report.html에선 아래와 같이 분기가 되는데
{% if success %} 해당 부분에서 success 변수가 존재하지 않기 때문에 성공 여부와 상관없이 무조건 Fail로 분기하게 됩니다.
{% if message == "Success" %} 이런 조건을 의도하신 거 같지만 잘못 짜여진 듯합니다.

        {% if message %}
            <div class="note-content">
                {% if success %}
                    <p class="success">Success</p>
                {% else %}
                    <p class="fail">Fail</p>
                {% endif %}
            </div>
        {% endif %}

그래서 올바르게 페이로드를 짜셨다면 쿠키를 받아볼 수 있습니다.
만약 테스트 할 때는 문제 없었는데 report로 보내면 실행이 안되는 것 같다. <- 이 문제같은 경우는
driver.get(f"http://127.0.0.1:8000/test?text={quote(text)}") 해당 코드를 유심히 살펴보며 report에서 입력한 값이 어떻게 전달될지 확인하면 될 듯 합니다.

2025.01.24. 14:07
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기