Dreamhack/Web Hacking

php로 작성된 파일 저장 서비스에서 파일 업로드 취약점을 이용해서 플래그를 획득하는 문제이다. Upload 탭에 들어가면 아래와 같은 화면이 뜬다. flag가 존재하는 /flag.txt 경로로 이동하는 command를 실행하는 php 코드를 작성해서 업로드할 것이다. cat: 파일 내용 출력 파일을 업로드 해주었다. 파일 업로드 후 리스트에 들어가면 업로드한 파일을 확인할 수 있다. 위 파일을 누르면 플래그 확인 가능!!
dreamhack 웹 해킹 Stage7 - Command Injection-1 혼자 실습 *Brute Suite 특정 사이트인 네이버, 구글에서 새로 고침(F5)를 누르거나 어떤 버튼을 클릭하여 이동할 때에 우리(사용자, Client)가 브라우저에 보낸 요청(Request)가 브라우저에 보낸 요청(Request)가 발생하며, 그 요청에 의해 네이버 또는 구글의 서버에서(Server) 응답(Responses)를 보내준다. 값을 변경하여 서버로 보낼 경우, 응답이 어떻게 오는지에 따라 값을 변경하여 시도할 수 있다. 버프를 사용하지 않을 경우, 브라우저에서의 사용자 요청 -> 서버 응답으로 바로 이루어진다. 버프를 사용할 경우, 브라우저에서 사용자 요청 -> 버프 -> 서버 응답으로 이루어진다 버프에서 사용..
ServerSide: SQL Injection simple_sqli -로그인 우회 풀이 로그인 코드를 보면 56번째 줄에 userid가 admin일 경우 flag를 출력하도록 되어있다. guest : guest로 로그인을 하면 'hello guest'라는 문구가 뜬다. ID: admin, PW: SWING30 userid 검색 조건만을 처리하도록, 뒤의 내용은 주석처리하는 방식을 사용해서 SQL 공격을 실행했다. SELECT * FROM users WHERE userid="admin"-- " AND userpassword="SWING30" userid에 admin"--, pw에 SWING30을 입력해준다. 플래그가 나온다. NoSQL Injection Mango 아래 나와있는 문구를 url 뒤에 입력해주..
CSRF CSRF(Cross Site Request Foregery) 공격은 웹 어플리케이션 취약점 중 하나로 인터넷 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 만드는 공격이다. CSRF-1 함께 실습 문제 아무런 입력도 하지 않고 메모창에 들어가면 'hello'라는 문구만 뜬다. flag창에 해당 명령어를 입력해준다. 로컬호스트에 위치하는 이용자가 /admin/notice_flag 페이지를 방문하도록 해야하기 때문에 아래와 같은 공격코드를 작성해준다. userid 파라미터가 admin인지 검사하는 부분이 존재하기 때문에 userid=admin이라는 부분을 포함시켜주어야 한다. 그리고 난 후 메모에 들어가보면 플래그를 확인할 수가 있다. 플..
함께실습 (XSS-1) 처음 사이트에 접속했을 때의 모습이다. 아무것도 입력하지 않고 그냥 memo 페이지에 들어가면 'hello'만 뜬다. 메모 페이지를 사용해서 쿠키를 탈취할 것이다. Home화면에 있는 flag에 들어간 후 빈칸 부분에 다음과 같은 문구를 작성하고 제출을 눌러준다. 그리고 나서 다시 홈으로 돌아온 후 메모 페이지에 들어가보면 다음과 같이 플래그가 나타난 것을 확인할 수 있다. 혼자실습 (XSS-2) XSS1문제와 같이 flag 페이지의 빈칸에 을 넣고 memo 페이지에 들어가 보았다. 하지만 memo 페이지에는 'hello'만 출력이 되었고, flag값은 출력이 되지 않았다. 위에 대한 이유는 코드에서 찾을 수 있었다. 코드에서 /vuln 부분을 보면 html5 innerHTML에 ..
오리진은 프로토콜 (Protocol, Scheme), 포트 (Port), 호스트 (Host) 로 구성되고, 구성 요소가 모두 일치해야 동일한 오리진이라고 한다. Preflight Request는 actual 요청 전에 인증 헤더를 전송하여 서버의 허용 여부를 미리 체크하는 테스트 요청이다. 이 요청으로 트래픽이 증가할 수 있다. 교차 출처 리소스 공유 (Cross Origin Resource Sharing, CORS) 교차 출처의 자원을 공유하는 방법은 CORS와 관련된 HTTP 헤더를 추가하여 전송하는 방법을 사용한다.
1. 혼자 실습하기 쿠키와 세션으로 인증 상태를 관리하는 문제이다. 첨부 되어있는 파이썬 코드의 app.route부분에서 /login과 /admin 부분을 보고 페이지 url링크의 끝 부분이 /login인 것을 수정해야겠다고 생각했다. 사이트 링크 마지막 부분에 login>admin으로 바꿔 admin의 세션을 확인했다. guest 계정으로 사이트 로그인을 하고, 개발자 도구를 열어준다. Value를 위에서 찾은 admin의 세션으로 수정하고, F5를 누르면 플래그를 찾을 수 있다. DH{8f3d86d1134c26fedf7c4c3ecd563aae3da98d5c} 2. 함께 실습하기 (1) 크롬 확장자 도구 이용하기 사이트에 접속한 후 id: guest, pw: guest로 로그인한다. 쿠키로 인증 상태를..
문제 파일을 다운로드 한 후 압출을 풀어준다. 사이트에 접속해준다. 개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아 문제를 풀라고 했으므로 사이트에 접속한 후 F12를 눌러서 개발자 도구를 열어준다. 그 후 Sources 탭에 들어간다. Ctrl+Shift+F를 입력해서 검색(Search)창을 열어준다. 플래그는 'DH{'로 시작하기 때문에 검색창에 'DH{'를 검색해준다. 플래그: DH{2ed07940b6fd9b0731ef698a5f0c065be9398f7fa00f03ed9da586c3ed1d54d5} 플래그를 정답 칸에 입력해주면 끝!