본문 바로가기

WebGoat2

[WebGoat] SQL Injection(intro) 9번 ~ 13번 풀이 9번 last_name 안에 적절한 쿼리를 입력해서 모든 유저의 테이블을 볼 수 있게 하는 문제이다. 이 문제를 풀기 위해서는 SQL의 where문 안의 우선순위를 알아야 한다. where문 안에 and와 or가 같이 있다면 and를 먼저 수행하고 or를 나중에 수행한다. where안의 조건이 항상 true가 되기 위해서는 다음과 같이 SQL를 만들면 된다. SELECT * FROM user_data WHERE first_name = 'John' AND last_name = '' or '1'=1'; first_name과 last_name의 true 여부와 관계없이 or 문 뒤에 '1' = '1'는 항상 true이기 때문에 where문은 항상 true가 된다. 10번 Login_Count와 User_Id에.. 2023. 4. 8.
[WebGoat] Hijack a session 풀이 자체 세션 ID로 개발할 때 사용자별 세션 ID가 복잡하고 임의적이지 않으면 응용 프로그램은 세션 기반 브루트 포스 공격에 매우 취약하다고 한다. 공격을 통해 다른 사용자의 인증된 세션에 대한 접근권한을 얻는 것이 목표인 문제이다. 문제에서 hijack_cookie라는 값을 예측해서 다른 인증된 사용자의 정보를 얻으라고 한다. 먼저 다음과 같이 아무 아이디와 비밀번호를 입력해서 access 요청을 하였다. Burp Suite를 통해 해당 login 요청에 대한 request와 response를 intercept하여 HTTP History를 통해 확인하였다. response를 보면 실패 문자와 함께 hijack_cookie에 임의의 랜덤 값이 응답으로 온 것을 볼 수 있다. 한번으로는 알 수 없으니 로그인.. 2023. 4. 8.