반응형

인젝션 4

[Web Hacking] WebGoat SQL Injection(mitigation) 문제풀이

※ 선행 학습 필요 개념 Order by 절 SELECT문으로 검색된 데이터를 오름차순(ASC)이나 내림차순(DESC)으로 정렬시킬 때 사용한다. Default 값은 Ascending(오름차순)으로 ASC는 생략해도 되며, 문자는 알파벳 순서로 출력된다. ORDER BY절에 선택된 컬럼이 여러 개일 경우 앞(왼쪽)에 정의된 컬럼을 기준으로 먼저 분류한 후, 이후에 나열된 순서대로 분류한다. Order by가 SQL Injection에서 쓰이는 경우는 컬럼(속성)의 수를 확인하기 위함이다. 예를 들어 컬럼이 두 개인 테이블에 쿼리문을 확인해보자 1) select * from table_name where name="a" order by 2; (정상 출력) 2) select * from table_name ..

[Web Hacking] WebGoat SQL Injection(advanced) 3 문제풀이

※ 선행 학습 필요 개념 Union SQL Injection 2개 이상의 쿼리를 요청하여 결과를 얻는 UNION 연산자를 이용해 SQL Injection 공격을 가하는 것을 말하며 공격자는 이 연산자를 이용하여 원래의 요청에 한 개의 추가 쿼리를 삽입하여 정보를 얻어낸다. 공격이 가능한 전제 조건은 컬럼의 수가 같아야 하며 데이터 형식도 같아야 한다. step 1. 컬럼 갯수 알아내기 갯수를 알아내기 위해 앞의 쿼리문에 이어서 union select 1, %23 으로 쓴다면 에러가 뜰 것이다. 그러나 union select 1, 2, %23 => union select 1, 2, 3, %23 ... 순으로 컬럼의 갯수를 늘려가다보면 에러가 나지 않는 때가 나올때, 즉 컬럼의 갯수가 일치할 때를 알 수 있..

[Web Hacking] WebGoat SQL Injection 문제풀이

해당 문제를 번역해보면 다음과 같다 Q. 아래 양식을 사용하여 users 테이블에서 모든 사용자를 검색하십시오. 전체 목록을 얻기 위해 특정 사용자 이름을 알 필요는 없지만 'Smith'를 사용하여 한 사용자의 데이터를 볼 수 있습니다. 문제에서 Smith라는 단서를 줬다. SQL 쿼리문을 참으로 만들어 Injection을 시도해본다. Smith' or 1=1 -- 를 대입하면 쿼리가 무조건 참이된다. Get Account Info 버튼을 클릭하게 되면 테이블 전체를 응답값으로 받게 된다. 그 다음 문제인 Numeric SQL Injection을 살펴보자. Q. 아래 양식을 사용하여 users 테이블에서 모든 사용자를 검색하십시오. 전체 목록을 얻기 위해 특정 사용자 이름을 알 필요는 없지만 '101'을..

[Web Hacking] OWASP A1 인젝션 종류

Injection (인젝션) 이란? 인젝션 취약점은 SQL, OS, LDAP 등에 해당되며 신뢰할 수 없는 데이터를 명령어나 질의문의 일부분으로서 보내질 때 발생하는데, 공격자의 데이터는 개발자가 의도하지 않은 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있습니다. Injection 종류 - SQL Injection 쿼리 등에 SQL 쿼리를 삽입하여 데이터베이스 조희, 변조 및 삭제 등의 공격을 의미한다. - CRLF Injection CRLF(%0d%0a) 패턴 삽입을 통한 악의적인 공격을 의미한다. - Command Injection 쿼리 등에 운영체제 명령어를 삽입하여, 명령어 실행 및 시스템 권한 획득 공격을 의미한다. 1. SQL Injection 1) Error..

반응형