WriteUp/Root-me.org

    Root-me : [Web_Server] HTTP - Headers

    Root-me : [Web_Server] HTTP - Headers

    구해야 하는 것을 보면 다음과 같다. 오전 11:24 힌트같은 문구가 주어져 있다. 관리자도구도 보자 Network 부분을 보면 헤더를 볼 수 있다. Response 헤더와 Request 헤더가 있는데 둘다 보자. Header-RootMe-Admin : none 으로 설정되어있다. 이 값을 all로 바꿔주고, request 에도 넣어주면 비밀번호가 나오게 된다. HeadersMayBeUseful

    Root-me : [Web_Server] HTTP - Directory indexing

    Root-me : [Web_Server] HTTP - Directory indexing

    열어보면 아무것도 나오지 않는다. 그래서 소스코드를 봤다. 소스코드에 뭔가 써있다. 해당 파일을 include 하나보다. 근데 경로가 유출되었다. ~/admin/ 에 들어가보자. Pass.html은 해당 페이지를 의미하고, /backup 에 가보면 admin.txt가 있다. 이 파일을 보자. 비밀번호가 있다.

    Root-me : [Web_Server] Backup file

    Root-me : [Web_Server] Backup file

    시작하고 들어가보니 다음과 같은 로그인화면이 보인다. 소스코드를 보는데, form 에 action이 지정되어 있지 않다. 이상한 부분이다. 문제에 backup 파일이라고 하니, 인덱스를 볼 수 있으면 좋을 것 같다. 그래서 해당 경로의 web-serveur 를 보았는데 다음과 같이 나온다. 우리가 원하는 건 ch11이다. 딱히 없는거 같은데 해당 페이지의 백업 파일을 받고 싶은데 방법을 찾아보자. index.php~ 를 치게 된다면 받아진다 왜 그런지는 모르겠다. -> 백업파일을 만들때 관습적으로 뒤에 ~를 붙인다고 한다. 이를 찾아내는 것은 nmap 을 이용하면 찾을 수 있다고 하니 해보도록 하자. 소스코드를 받아보면 다음과 같다. 전체 소스코드가 받아지는 취약점을 php source code disc..

    ETHERNET - Patched transmission

    ETHERNET - Patched transmission

    INGRESS 와 EGRESS 과정이 나열되어있다. INGRESS는 입구라는 뜻이고, EGRESS는 출구라는 뜻이다. 일단 ETHERNET 문제니까 ETHERNET 프레임 구조를 알아보자. 버젼이 여러개넹…. 맞는걸 찾아서 해봅시당 패킷 색깔별로 무엇을 의미하는지 표시해 놨다. 위에있는 SRC 와 DES 는 MAC 에 대한 것이고 아래 있는 SRC 와 DES 는 IPv6 주소이다. WireShark 를 이용해서 패킷 분석을 해보았다. 이것은 EGRESS로 응답 패킷이다. -> 2번째 패킷에 대한 응답 패킷인 것을 확인할 수 있다. 즉 2번째 패킷에 대해서 SRC 주소랑 DES 주소를 바꿔주면 된다. Ping 에 대한 응답이니까 하늘색 값은 8100 으로 똑같이 들어갈 것이고, 연한 노랑색 부분은 TYPE..

    HTTP - User-agent

    HTTP - User-agent

    User-Agent 가 잘못 되었다고 한다. admin 브라우저로 접속해야된다. 먼저 User_Agent 가 뭔지 알아보도록 하자. The User-Agent request header is a characteristic string that lets servers and network peers identify the application, operating system, vendor, and/or version of the requesting user agent. => User Agent 는 서버나 네트워크 peer 가 어플리케이션,OS, Vendor, 버전을 구분할수 있게끔 해주는 문자열이다. Burp Suite 를 이용해서 User-Agent 를 admin으로 변경해 줬다. 원래 있는 User_A..

    SIP - authentication

    SIP - authentication

    SIP 가 뭔지부터 알아보자. (Session Initiation Protocol) = 다수의 참가자를 대상으로 하는 멀티미디어 세션을 다루는 프로토콜 이라고한다. 응용계층 프로토콜이라고 함. TCP 또는 UDP 헤더를 사용한다고 함. 근데 이게 IP 목록을 가지고 있으면 연결이 항시 가능한데, 여러 사용자가 동시에 통화하기 위한 조건은 현실적으로 힘들기 때문에, 서버를 두고 있다고 함. 서버 종류 Register 서버 자신이 가지고 있는 IP 정보를 서버에 업데이트. SIP REGISTER 메세지를 보냄 Proxy 서버 접속 요청 메세지를 추가,변경,삭제 가능. SIP INVITE 메세지를 보냄. Redirect 서버 메세지를 전송한 UAC로 목적지를 3xx redirect 메세지를 전송해줌. http..

    Javascript - Obfuscation 3

    주석은 내가 썼당... 난독화라기 보기에는 코드가 깔끔하다. dechiffre 함수만 잘 이해해보자. 마지막줄에 pass=p 에서 항상 같은 에러메시지를 띄워준다…. 맞는 값이여도 그럴듯 deciffre 에 들어가는 매개변수가 검증값인거같다. 한번 번역을 해보자. 번역은 아스키코드표 보고 했다 (hex -> ascii) pw : 786OsErtk12

    Javascript - Native code

    Javascript - Native code

    이제 영어조차 주지않는다…..ㅠ 음 난독환가..? 싶어서 넣어봤다. Plop 조금만 깔끔해지고 거의 그대로 나오는 걸 보아하니,,, 뭔가 더있는거같다. toString() : 특정 개체를 설명하는 문자열을 Return 하는 함수 라고 한다. 이걸 이용하면 좋을 거같다. pw : toto123lol

    Javascript - Authentication 2

    function connexion(){ var username = prompt("Username :", ""); var password = prompt("Password :", ""); var TheLists = ["GOD:HIDDEN"]; for (i = 0; i < TheLists.length; i++) { if (TheLists[i].indexOf(username) == 0) { var TheSplit = TheLists[i].split(":"); var TheUsername = TheSplit[0]; var ThePassword = TheSplit[1]; if (username == TheUsername && password == ThePassword) { alert("Vous pouvez uti..

    Javascript - Obfuscation 2

    Javascript - Obfuscation 2

    다시 난독화 문제다. 예전에 비슷한 문제를 많이 풀어봤기 때문에 바로 찾을수 있었다. 난독화 해제해주는사이트 가면 할수 있다. var pass = unescape("unescape(" String.fromCharCode(104, 68, 117, 102, 106, 100, 107, 105, 49, 53, 54)")"); pass 에 무슨 값이 들어가는지 확인해보면 unescape("unescape("hDufjdki156")") 가들어가고, 똑같이 나온다. pw : hDufjdki156