March 20, 2019

WebGoat write up(SQL Injection advanced 3)

To comply with the rule, in this write up, some hints related to this challenge only will be mentioned.

룰을 준수하기 위해, 여기서는 챌린지와과 관련된 몇 가지 힌트만이 언급됩니다.

Try It! Pulling data from other tables
다른 테이블에서 데이터 추출 실습해보기.

Let's try to exploit a join to another table. One of the tables in the WebGoat database is:

JOIN을 활용하여 어떤 테이블을 공략해보자. WebGoat의 여러 테이블 중 하나는 아래와 같다.

CREATE TABLE user_system_data(
userid int not null primary key,
user_name varchar(12),
password varchar(10),
cookie varchar(30)
);

6.a) Execute a query to union or join these tables.
UNION 혹은 JOIN으로 테이블들을 결합해보라.

6.b) When you have figured it out…. What is Dave’s password?
그렇다면, Dave의 패스워드는 무엇인가?

WebGoat write up(SQL Injection advanced 3)

For this, you need to know the SQL statement called "UNION". It is not unreasonable to say that it is used when combining two SELECT statements. One thing to remember is that the number of columns in the two SELECT statements to be combined must be the same. For example, if you enter "Smith", there are 7 columns such as "USERID", "FIRST" etc, which means you have to comply with the number of 7.

이를 위해 "UNION" 이라는 SQL문(SQL statement)를 알아야 한다. 두 개의 SELECT문을 합칠 때 사용된다는 정도만 알아도 여기서는 크게 무리 없을 것이다. 다만 한 가지 특징을 기억해야 하는데, 합치려는 두 개의 SELECT문의 열의 개수가 동일해야 된다는 점이다. 예를 들어, 위에서 "Smith"를 입력했을 때 "USERID", "FIRST" 순으로 총 7개의 열(이하 어트리뷰트)이 있는데, 이 7개라는 개수를 맞춰 주어야한다는 의미다.