[실습6-1]MSSQL ERROR-BASED 공격 실습 관련 질문 내용
안녕하세요. 크리핵티브님 MSSQL에 대한 Error-based 공격 실습 관련 질문 사항이 발생해서 질문 드리게 되었습니다.
Injection 공격 검증을 할 때 사용하는 쿼리문 내용 중 test%' and '%'=' 구문이 있는데 이런 구문이 있는 이유가 index.php 의 내용을 보면 아래와 같은 코드로 만들어져서 있는 것으로 알고 있습니다.
[index.php의 일부 코드]
(생략)
$query = "select * from {$tb_name}";
} else {
if($search_type == "all") {
$query = "select * from {$tb_name} where title like '%{$keyword}%' or writer like '%{$keyword}%' or content like '%{$keyword}%'";
} else {
$query = "select * from {$tb_name} where {$search_type} like '%{$keyword}%'";
}
--> 즉 우리가 입력한 test%' and '%'=' 은 if문 안에 들어가서 $query의 '%{$keyword}%'에 들어가게 되어서 최종적으로는 $query = "select * from board..tb_board where '%test%' and '%'='%'"; 이 되어서 test 이름이 들어간 모든 게시물을 보여주는 것으로 알고 있습니다.
공격 검증에 사용되는 test%' and '%'=' 구문은 현재 우리가 index.php의 $query의 내용을 알고 있어서 이렇게 test%' and '%'=' 작성 할 수 있지만 실제 실무에서도 이게 활용이 가능한지 궁금합니다.
혹시 대부분의 실무 환경도 $query = "select * from {$tb_name} where {$search_type} like '%{$keyword}%'"; 같은 구조로 개발이 되어서 대부분의 실무 환경에도 test%' and '%'=' 구문을 공격 검증 페이로드로 사용할 수 있는지 여부가 궁금합니다.
Answer 1
1
안녕하세요.
위와 같이 쿼리를 작성하는 이유는 In-line 방식의 구문을 작성하기 위함이며, 굳이 In-line 구문이 아닌 Terminating 방식으로 작성을 해도 됩니다.
그러나 위와 같이 쿼리를 작성하는 이유는 Terminating 방식이 안되는 경우가 있기 때문이죠. 또한 우리는 서버측 쿼리 작성된 구조를 알고 올바른 방법으로 다양한 쿼리를 작성을 하기 위함도 있습니다.
실무 환경에서 만약 인젝션 취약점이 발생된다면, 위의 쿼리는 당연히 활용 가능합니다. 제 경험상 짧은 구문으로 취약점 테스트는 대부분 원활히 잘 됩니다.
다만 변수는 보안 솔루션, 시큐어 코딩 이 2가지입니다.
이 2가지도 환경에 따라 천차만별입니다. 굉장히 타이트하게 패턴을 검증하는 경우는 ' and '%'=' 이 구문만 넣어서 공격이라 판별하는 곳도 있긴합니다. 다만, 이 같은 경우는 오탐도 많기에 이렇게 타이트하게 보는건 드물긴합니다...
어느 정도 쿼리가 쌓이면(공격 구문이 길어지면) 공격으로 판별을 하겠죠. 이 또한 여려가지의 우회 방법들이 존재합니다.
컬럼명 기반으로 테이블 개수를 출력
2
499
1
외부 자료 학습중 질문사항-메타데이터 추출 불가한 상황
1
477
1
텍스트 인코딩 한국어
1
610
1
강의랑 관련없는 내용이지만
1
525
2
왜 취약점이 존재한다고 판단할 수 있는지 궁금합니다.
2
553
1
스프링을 배우는 게 나중에 웹 취약점 진단에 도움이 될까요?
2
618
1
Fatal error
1
697
1
코드에 있는 이상한 노란박스
1
1795
1
Parse error 마지막 부분 에러
1
450
1
microsoft machine leraning server 구성 요소 오프라인 설치
1
697
1
실무에서의 버프스위트 사용이 궁금합니다!
1
370
1
sql injection이 왜 위협적인 공격인지 궁금합니다.
2
458
1
union 공격 시 최적화 방법 (게시글 상세보기)
2
258
1
질문이 있습니다
1
201
1
한글은 비트추론할때 어떻게 해야하나요?
1
231
1
[SQL 인젝션에 대한 이해] - "검색 기능에 대한 올바른 취약점 점검 방법" 강의 내용에 대해서 질문입니다.
1
738
2
로그인 버튼
1
284
1
php+mssql 연동
1
447
1
취약점 실습 에러가 안나요
1
237
1
php 기반 로그인 기능 제작 관련해서 질문드립니다.
1
365
3
[실습 7-4, 7-5, 7-6] MySQL, MSSQL, Oracle union based 공격 실습 강의 이후 상세보기에서 순차적 데이터 호출 실습 질문
1
313
1
[실습2-1] 취약점 분석 실습 도중에 질문있습니다 !!
2
222
1
ORA-12541
1
895
7
apache monitor is already started
1
547
1

