WebGoat - SQL injection (Blind SQL injection) 포스팅 썸네일 이미지

네트워크, 웹 (Network & Web)/Wargame

WebGoat - SQL injection (Blind SQL injection)

Tom 으로 로그인 하면 된다. 이미 존재한다고 나온다. 참인 쿼리문 주석 처리로는 로그인이 되지 않는다. REGISTER 부분에서도 참인 쿼리를 넣으면 이미 존재한다고 나온다. 거짓인 쿼리를 넣었더니 계정이 생성 되었다. tom' and substr(password,1,1)='a'-- 을 입력해서 password의 첫번째가 a인지 묻는 것을 만들 수 있다. 쿼리가 참이라면 이미 존재한다가 나올 것이고, 쿼리가 거짓이라면, 만들어질 것이다. 따라서 blind SQL injection의 조건이 갖춰지고, 참이 나오는 쿼리를 찾는 것이 곧 비밀번호를 찾는 것이다. burp suite에서 확인해보면, username_reg email_reg password_reg confirm_password_reg 인자값을..

2021.08.27 게시됨

WebGoat - SQL injection (Union SQL injection) 포스팅 썸네일 이미지

네트워크, 웹 (Network & Web)/Wargame

WebGoat - SQL injection (Union SQL injection)

user_data 테이블 정보가 있다. 모든 데이터들을 확인해보고, Dave의 패스워드를 알아내면 된다. Union SQL injection - 2개 이상의 쿼리를 사용 - UNION 연산자 사용 - 컬럼 개수, 데이터 형식이 같아야 함 컬럼 개수를 알아내기 [ union 대입으로 알아내기 ] 앞 쿼리문 + union select 1, %23 으로 작성을 하면 에러가 발생 union select 1, 2, %23 union select 1, 2, 3, %23 union select 1, 2, 3, 4, %23 와 같이 컬럼의 개수를 늘리다 에러가 나지 않으면 그것이 컬럼의 개수 [ order by 대입으로 알아내기 ] where ??? + order by 1 % 23 where ??? + order by..

2021.08.27 게시됨

WebGoat - A1 injection (Compromising Integrity with Query chaining) 포스팅 썸네일 이미지

네트워크, 웹 (Network & Web)/Wargame

WebGoat - A1 injection (Compromising Integrity with Query chaining)

토비와 밥이 Smith보다 더 많은 돈을 버는 것 같다는 것을 방금 알았다. 월급을 바꿀 수 있다는 내용이 적혀있다. 기억하십시오: 귀하의 이름은 John Smith이고 현재 TAN은 3SL99A입니다. 주어진 정보를 입력해서 테이블을 확인해보자. Employee Name에 참인 구문과 동시에 끝을 주석처리로 입력하면, 문제의 제목처럼 Query chaining 이 필요하다. 쿼리가 끝나는 부분에 ; 를 작성하여 뒤에 쿼리 문을 하나 더 넣을 수 있다. Employee Name 부분에 작성을 하자. 1'; UPDATE EMPLOYEES SET SALARY = 99999 where LAST_NAME = 'Smith';-- 끝은 주석 처리라서 TAN 값은 무엇이 와도 상관없다. 부자가 된 Smith

2021.08.27 게시됨

WebGoat - A1 injection (Compromising confidentiality with String SQL injection) 포스팅 썸네일 이미지

네트워크, 웹 (Network & Web)/Wargame

WebGoat - A1 injection (Compromising confidentiality with String SQL injection)

당신은 대기업에서 일하는 John Smith 라는 직원이다. 회사는 모든 직원이 자신이 근무하는 부서와 급여 등 자신의 내부 데이터를 볼 수 있는 내부 시스템을 갖추고 있다. 시스템에서는 직원이 고유한 인증 TAN을 사용하여 데이터를 볼 것을 요구한다. 현재 TAN은 3SL99A 이다. 항상 연봉이 가장 높은 직원이 되고자 하는 충동이 있기 때문에 시스템을 활용해서 자신의 내부 데이터를 보는 대신 모든 동료의 데이터를 검토하여 현재 급여를 확인하고자 한다. 아래 양식을 사용하여 직원 테이블에서 모든 직원 데이터를 검색하시오. 필요한 정보를 얻기 위해 특정 이름이나 TAN을 몰라도 된다. 요청을 수행하는 쿼리는 다음과 같다. "SELECT * FROM employees WHERE last_name = '"..

2021.08.27 게시됨

WebGoat - A1 injection (String SQL injection) 포스팅 썸네일 이미지

네트워크, 웹 (Network & Web)/Wargame

WebGoat - A1 injection (String SQL injection)

burp suite으로 접속한 WebGoat 이다. String SQL injection을 다루고 있는데. retrieve all the users from the user table이 목표가 되겠다. 주어진 쿼리 문을 살펴보자. "SELECT * FROM user_data WHERE first_name = 'John' AND last_name = '" + lastName + "'"; last_name = ' ????? ' 이 물음표 부분에 우리가 스트링을 추가해서 모든 유저의 정보를 볼 수 있으면 된다. string injection 기법으로 or을 이용하겠다. or 을 사용하면 앞에 어떤 문장이 와도 상관이 없다. last_name = '' 이니까 last_name = 'komi' or '1'='1'..

2021.08.27 게시됨

반응형