보안

    Dreamhack: simple_sqli

    SQL Injection 문제다 시작 화면이다. 아무 것도 없는 페이지이다. 링크를 타고 들어가면 로그인 form이 하나 있다. 혹시나 싶어서 웹 페이지 검사를 해봤지만 별 내용은 없다. 문제 파일을 열어보면 테이블 생성에 관한 코드가 있다. sqlite3을 사용하고 guest / guest와 admin / 랜덤값 을 데이터베이스에 삽입한다고 되어있다. 로그인에 관련된 코드를 보면 select * from users where userid="{userid}" and userpassword="{userpassword}"를 통해 데이터베이스에서 정보를 가져온다. userid가 admin일 경우 flag 값을 반환하도록 되어있고, password에 관한 내용은 없다. 따라서 userid를 admin으로 입력하..

    Dreamhack: file-download-1

    파일 다운로드 취약점에 관련된 문제인데 저번에 풀어본 pathtraversal과 비슷한 느낌이다. 첫 화면이다. 어떤 역할을 하는지 테스트 하기 위해 아무거나 입력하고 Upload를 눌러본다. 홈 화면에 가보면 test라는 항목이 생긴다. 여기 들어가서 내용을 보면 아까 입력한 제목과 내용이 잘 나온다. flag값은 flag.py 파일안에 있다고 했으니 적절히 경로를 바꿔 flag.py로 접근을 해야 한다. url을 보면 test의 내용을 보는데 name=test라고 나와있다. 이것을 통해 파일이름을 read라는 페이지에 전달해 파일을 가져온다는 것을 알 수 있다. 따라서 파일이름을 flag.py의 경로로 설정해주면 된다. 이렇게 입력한다면 오류가 발생한다. 문제 파일을 열어보면 파일이름(filename..

    Dreamhack: pathtraversal

    먼저 사이트에 접속해보면 단순한 사이트가 나온다. Get User Info에 들어가보면 form이 하나 있고 내용이 guest로 채워져 있다. View를 눌러보면 guest에 대한 정보가 출력된다. 그런데 View를 누르고 결과가 출력되기까지 그 짧은 순간에 userid 입력칸이 guest에서 0으로 바뀌는 것을 볼 수 있다. 문제 파일에 관련된 코드가 있는지 확인하기 위해 문제파일을 열어보았다. users에 보면 0인 경우 guest, 1인 경우 admin에 대한 정보를 갖고 있다. 코드에는 guest를 0으로 바꾼다는 내용이 없다. 따라서 브라우저에서 페이지 검사를 통해 요소를 보니 script태그 안에 사용자의 입력값(guest/admin)에 따라 0 또는 1로 변경해서 return을 한다. 이것을..

    Dreamhack: xss-1

    우선 접속 페이지로 들어가 본다. 세개의 링크가 있는 웹 페이지 이다. 하나씩 들어가서 확인해본다. vuln 페이지의 경우 param으로 스크립트를 받는데 작동을 하는 것으로 보아 xss가 가능하다. 다른 값을 넣어봐도 작동을 한다. 이후 memo 페이지로 들어가 보면 hello라는 문구가 적혀있다. 새로고침을 하거나 다시 memo페이지에 들어가게 되면 hello가 하나 더 생긴다. url을 보면 memo 페이지에서 memo라는 이름으로 hello값을 갖고 있다. 혹시나 해서 스크립트를 넣어보면 실행되지 않고 그대로 출력되어 버린다. 따라서 memo페이지에는 xss를 사용할 수 없다. 다음으로 flag 페이지에 들어가 본다. 이런 form이 있다. 아무 값이나 넣어서 제출을 해보면 그냥 good이라는 알..