접속하면 문서 내용이 표시되는데, 특별한 내용은 없습니다. 인자의 URL 부분을 퍼징해 보면 앞의 http://66.172.33.59/ 와 끝의 .doc 에 static 한 비교를 수행하고 있다는 것을 알 수 있습니다. 어느 한 부분이라도 만족하지 못하면, Security Error 를 반환합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
<!-- http://66.172.33.59:5000/get_doc?url=http://66.172.33.59/.doc --> <!DOCTYPE HTMLPUBLIC"-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>Index of /</title> </head> <body> <h1>Index of /</h1> <table> <tr><thvalign="top"><imgsrc="/icons/blank.gif"alt="[ICO]"></th><th><ahref="?C=N;O=D">Name</a></th><th><ahref="?C=M;O=A">Last modified</a></th><th><ahref="?C=S;O=A">Size</a></th><th><ahref="?C=D;O=A">Description</a></th></tr> <tr><thcolspan="5"><hr></th></tr> <tr><tdvalign="top"><imgsrc="/icons/folder.gif"alt="[DIR]"></td><td><ahref="doc_app/">doc_app/</a></td><tdalign="right">2019-11-14 14:51 </td><tdalign="right"> - </td><td></td></tr> <tr><tdvalign="top"><imgsrc="/icons/folder.gif"alt="[DIR]"></td><td><ahref="docs/">docs/</a></td><tdalign="right">2019-11-14 14:51 </td><tdalign="right"> - </td><td></td></tr> <tr><tdvalign="top"><imgsrc="/icons/folder.gif"alt="[DIR]"></td><td><ahref="flag/">flag/</a></td><tdalign="right">2019-11-14 14:51 </td><tdalign="right"> - </td><td></td></tr> <tr><thcolspan="5"><hr></th></tr> </table> <address>Apache/2.4.38 (Debian) Server at 66.172.33.59 Port 80</address> </body></html>
http://66.172.33.59/.doc 을 URL 에 넣어 확인해 보면 이 처럼 디렉토리 리스팅이 되는 것을 확인할 수 있습니다.
내부 서버에 직접 접속할 수 있다면, POST 메소드로 페이지를 요청하는 것도 간단할 것 같습니다. 하지만 실제로 접속해보면, 연결 자체가 블록되어 있지는 않지만, basic 인증을 요구하고 있습니다. .htpasswd 에서 해시값은 알 수 있지만, 평문 패스워드를 알아낼 수는 없습니다.
1 2
<!-- http://66.172.33.59:5000/get_doc?url=http://66.172.33.59/%0a%0d.doc --> HTTPConnectionPool(host='66.172.33.59%0d', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f953e32ccd0>: Failed to establish a new connection: [Errno -2] Name or service not known'))
CRLF Injection 혹은 타 호스트로의 접속을 유도할 수 있다면 문제 해결이 가능할 것 같습니다. 따라서 CRLF Injection 이 가능 유무를 확인하던 도중 이상 현상을 확인했습니다. TrustZone 에서 호스트를 파싱하는 로직에 문제가 있어 보입니다.
1 2 3 4 5
// http://66.172.33.59:5000/get_doc?url=http://66.172.33.59/%0a%0d@.doc No host specified.