오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 tmitter를 함께 풀어볼 예정입니다. [wargame.kr] tmitter Description text you need login with "admin"s id! create table tmitter_user( idx int auto_increment primary key, id char(32), ps char(32) ); dreamhack.io ## 문제 설명: 문제 정보를 살펴보면 'admin' 계정으로 로그인하면 되는 것으로 보인다. ## 문제 풀이 사이트에 접속해보니 다음과 같은 화면이 보인다. "Sign in"과 "Sign Up" 버튼이 있는데, "Sign in" 버튼을 클릭하여 admin 계정에 대해서 SQL Injection 공격..
이번 포스트에서는 OS Command Injection 기법에 대해서 다루겠다. OS Command Injection OS Command Injection의 정의 : 웹 응용 프로그램의 개발에 사용하는 언어의 대부분은 셸을 통해 OS 명령어를 실행할 수 있다. 셸을 통해 OS 명령을 실행하거나 개발에 사용된 기능이 내부적으로 셸을 사용해 구현된 경우 의도하지 않은 OS 명령이 실행될 수 있다. 이 취약점을 OS 명령어 인젝션이라고 한다. OS Command Injection의 발생 원인 : 셸에서 2개 이상의 명령어를 한 줄에 실행할 수 있기 때문에 원래의 명령 이외에 다른 명령을 실행할 수 있다. OS Command Injection이 왜 위험한가? OS 명령어 인젝션이 발생한 경우 웹 서비스 상의 모..
이번 포스트에서는 SQL Injection에 대한 포괄적인 소개를 다루도록 하겠습니다. SQL Injection SQL Injection의 정의 : SQL Injection은 우리나라 말로 SQL 주입이라 할 수 있습니다. 즉 임의의 SQL 쿼리문을 주입하는 공격 기법이라 할 수 있습니다. 좀 더 자세하게 설명하자면 SQL 인젝션은 웹 사이트의 보안상 허점을 이용해 특정 SQL 쿼리문을 전송하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위입니다. SQL Injection의 발생 원인 : SQL Injection은 주로 사용자가 입력한 데이터가 제대로 필터링, 이스케이핑하지 못했을 경우에 발생합니다. 즉, 클라이언트 측의 데이터를 신뢰해서 그대로 SQL문에 사용했기 때문입니다. SQL Inject..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 Mango를 함께 풀어볼 예정입니다. Mango Description 이 문제는 데이터베이스에 저장된 플래그를 획득하는 문제입니다. 플래그는 admin 계정의 비밀번호 입니다. 플래그의 형식은 DH{...} 입니다. {'uid': 'admin', 'upw': 'DH{32alphanumeric}'} Reference Serv dreamhack.io 문제 정보를 살펴보면 플래그는 admin 계정의 비밀번호라고 합니다. 또한 해당 문제의 이름을 통해서 MangoDB를 사용한다는 것도 추측해낼 수 있습니다. 워게임 사이트에 접속해 보면 아래와 같이 uid와 upw의 정보가 담긴 페이지가 로딩될 겁니다. 이어서 소스코드를 분석해보겠습니다. 9번째 코드를 보..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 devtools-sources를 함께 풀어볼 예정입니다. devtools-sources 개발자 도구의 Sources 탭 기능을 활용해 플래그를 찾아보세요. Reference Tools: Browser DevTools dreamhack.io 문제 정보를 살펴보면 개발자 도구의 Sources 탭 기능을 활용하면 된답니다. 문제 파일을 다운로드하고 압축 풀면 다음과 같이 4개의 html 파일이 들어가 있는 것을 확인할 수 있습니다. 모든 html 파일을 열어보면 각각 다음과 같습니다. 이번 문제는 소스 코드가 그닥 중요하지 않아서 바로 문제 풀이로 넘어가겠습니다. 크롬을 이용하여 아무 페이지에 접속한 후, 원도우는 F12, 맥OS는 option + co..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 session을 함께 풀어볼 예정입니다. session 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다. Reference Background: Cookie & Session dreamhack.io 문제 정보를 살펴보면 해당 문제는 쿠키와 세션을 이용하여 admin 계정으로 로그인하면 성공한다고 합니다. 워게임에 사이트에 접속해 보면 아래와 같은 페이지가 로딩될 겁니다. 사이트를 살펴보면 Home, About, Login 이렇게 총 3개의 링크가 존재한다는 것을 확인할 수 있습니다. About 링크를 클릭해보면 다음과 같이 아무런 변화가 없다는 것을 확인할 수 있습..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 proxy-1을 함께 풀어볼 예정입니다. proxy-1 Raw Socket Sender가 구현된 서비스입니다. 요구하는 조건을 맞춰 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference Introduction of Webhacking dreamhack.io 문제 정보를 살펴보면 해당 서비스는 Raw Socket으로 구현되었다고 합니다. Raw Socket을 간략히 소개하자면 특정한 프로토콜 용의 전송 계층 fomatting없이 인터넷 패킷을 주고받게 해주는 서비스입니다. 워게임 사이트에 접속해 보면 아래와 같은 페이지가 로딩될 겁니다. 사이트를 살펴보면 Home, Socket 이렇게 총 2개의 링크가 존재한다..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 Carve Party를 함께 풀어볼 예정입니다. Carve Party Description 할로윈 파티를 기념하기 위해 호박을 준비했습니다! 호박을 10000번 클릭하고 플래그를 획득하세요! dreamhack.io 문제 정보를 살펴보면 호박을 만 번 클릭하면 플래그를 준답니다. 문제 파일을 다운로드하고 열어보면 아래와 같습니다. 호박을 클릭하면 다음과 같이 카운트가 줄어든 것을 확인할 수 있습니다. 실제로 그냥 만 번을 클릭해서 플래그를 획득할 수도 있지만 현실로써는 거의 불가능한 거라 우리는 다른 방식으로 접근해야 합니다. 그 접근 방법으로는 자동 메크로 프로그램을 작성해서 만 번을 클릭하거나 해당 웹 페이지의 웹 소스를 조작하는 것입니다. 그럼..
오늘은 DreamHacker의 웹 해킹 워게임 중 하나인 xss-2를 함께 풀어볼 예정입니다. xss-2 여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다. XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다. Reference ClientSide: XSS dreamhack.io 문제 정보를 살펴보면 해당 워게임은 XSS(Cross-Site Scripting)취약점을 이용하면 된다고 합니다. 워게임 사이트에 접속해 보면 아래와 같은 페이지가 로딩될 겁니다. 메인 화면에 vuln(xss) page, memo, flag 이렇게 총 3개의 링크가 있는데 하나 씩 클릭해서 확인해보면 각각 다음과 같습니다. vuln 페이지를 확인해보면 아무것도 출력이 안..
https://www.google.com/search?q=%ED%95... 우리는 URL 링크를 보면 종종 '?', '=', '%' 등 특수문자가 많이 들어가 있다는 것을 확인할 수 있습니다. 이런 특수문자들은 다름이 아닌 바로 메타문자입니다. 오늘은 웹 해킹에 있어 자주 보게 될 메타문자 몇 가지에 대해서 간략하게 소개하도록 하겠습니다. 우선, 메타문자란 무엇인가? 메타문자는 쉽게 말해 특수한 기능을 가진 문자를 일컫습니다. 우리는 메타문자를 활용하여 정규식이나 정규표현식을 제어할 수 있습니다. 그럼 다음 예시를 통해 웹 해킹에 자주 사용되는 메타문자를 함께 살펴보겠습니다. http://www.jy05un.com/login.php?id=guest&password=1234 ? : 파라미터를 넘길 때 사용..