WebGoat 6

WebGoat (6)

[실습2-12] SQL Injection(advanced) -3퀴즈 형식으로 되어 있다. 첫번째 문제부터 보면,프리컴파일이 진행되고 메모리에 올라가게 된다. 그리고 사용자 입력값만 세팅돼서 컴파일을 진행하지 않고 사용자 입력값만 바인딩한다. 그래서 prepared statement 속도가 더 빠르다.그래서 답이 두번째.  컴파일 된 이후에 입력해도 사용자 데이터를 순수하게 받기 때문에 공격하기 어렵다.그래서 답이 3번.prepared statement가 적용되면 순수한 데이터가 그대로 입력된다. 이렇게 다 선택하면 모두 정답!  [실습2-13] SQL Injection(mitigation) -1sql injection에 안전한 코드를 완성하자.변수를 만들 때는 PreparedStatement로 써야 하고..

WebGoat 2025.03.18

WebGoat (5)

[실습2-11] SQL Injection(advanced) -2내 계정이 아니라 Tom 계정으로 로그인하는 것이 목표이다.우선 회원가입 시도를 해보자. 다 test로 계정을 만들어주었다.이렇게 버프 스위트로 잡으면 밑에 이렇게 뜬다.response를 보면 user test created라고 뜬다. 그럼 이제 이 request를 리피터에 넣고 다시 시도해보자.다시 send하면 이미 test 라는 사용자 계정이 존재한다고 뜬다. 그러면 test1로 시도해보자.이렇게 test1가 성공적으로 만들어졌다고 뜬다. 이로써 유추할 수 있는 게 생겼다. 먼저 중복 조회를 하고, insert를 하는 것 같다.test' 라고 쓰니 문제가 발생한 것으로 보인다.test'||'라고 쓰니까 이미 존재한다고 한다. sql inj..

WebGoat 2025.03.17

WebGoat (4)

[실습2-10] SQL Injection(advanced) -1 다른 테이블의 데이터를 가져오는 것이 목표. 첫번째 Name 칸에서는 user_data에서 불러오는 것이다. 목표는 두번째 테이블인 user_system_data를 불러오는 것. 일단 모든 데이터를 가져오고, Dave의 패스워드를 알아맞추는 문제이다.  우선 name이 취약한지 판단해보아야 한다. 우선 ' or 1=1--를 넣어보고 확인해보자.이렇게 모든 사용자들이 나온다. SELECT * FROM user_data WHERE last_name = '' or 1=1--'이렇게 쿼리가 입력된 것이다.  이 외에, Snow를 검색하고 싶을 때 Sno'||'wSno' 'wSno'+'w이렇게 해도 연결된다. MySQL에서 공백(의미없는 문자)를 연..

WebGoat 2025.03.17

WebGoat (3)

[실습2-1] SQL Injection(intro) - 1이렇게 돼있다. 문제에서는 Bob Franco의 department를 알아내야 한다. SQL query를 입력하여 찾을 수 있다. select department from employees where first_name='Bob'이렇게 입력하면, employees table 안에 있는 department를 선택할 수 있다.where first_name='Bob'으로 해도 무관하고, where last_name='Franco'로 해도 무관하다. 이렇게 잘 입력했고, 부서가 Marketing이란 것도 확인했다. [실습2-2] SQL Injection(intro) - 2다음이다. DML에 대한 문제이다. Tobi Barnett의 department를 S..

WebGoat 2025.03.12

WebGoat (2)

Injection이란 무엇인가?공격 구문을 주입해서 악의적인 행동을 한다. 어떤 것을 넣는지에 따라 취약점 종류가 달라진다. 이중에서 제일 유명한 injection은 sql injection이다. os command injection도 있다. 가장 critical하지만, 시스템 명령어를 실행하는 기능이 많지 않아서 취약점이 발생할 확률이 낮은 편이다. SQL Injection이란 무엇인가?sql: 구조화된 질의 언어. 단일 라인으로 끝난다. 명령어 개념이라고 생각하면 편하다. insert, select, 등등.. 구문이 길어질 순 있지만 데이터베이스의 데이터를 제어하기 위해 사용된다.  사용자가 입력할 수 있는 파라미터 값에서 sql injection 공격이 나타날 수 있다.?idx=100을 입력할 수 ..

WebGoat 2025.03.10

WebGoat(1)

WebGoat란 무엇인가?OWASP에서 제작한 취약한 웹 어플리케이션. 취약한 환경을 구성하여 웹 해킹 학습을 도와줄 수 있는 사이트. OWASP Top 10을 기준으로 항목을 지정해준다. WebGoat 설치 및 실행https://github.com/WebGoat/WebGoat GitHub - WebGoat/WebGoat: WebGoat is a deliberately insecure applicationWebGoat is a deliberately insecure application. Contribute to WebGoat/WebGoat development by creating an account on GitHub.github.com이 링크를 들어가서 밑으로 내린다.여기 사이트를 누른다.계속 내리다..

WebGoat 2025.03.10