본문 바로가기

정보 보안 해킹 공부/SQL 인젝션7

SQL INJECTION BYPASS WAF SQL INJECTION BYPASS WAF 1. 공백 대체 %09 : tab %0a : line feed %0b : vertical tab %0c : form feed %0d : carriage return + : space와 동일 /**/ : 주석, 내부에 임의의 문자열 삽입 가능 2. 사용 회피 () : 괄호 concat : 합성 1. 공백 문자 우회 1) Line Feed (\n) - 커서(캐럿)를 다음 줄(현재 위치에서 바로 아래줄)로 이동시키는 개행 문자 - URL Encoding: %0a - ex) no=1%0aor%0aid='admin' 2) Tab (\t) - 커서를 한 tab만큼 이동시키는 문자 - URL Encoding: %09 - ex) no=1%09or%09id='admin' 3).. 2022. 7. 1.
SQL injection 기본 종류 where 구문 우회 아이디가 1인 데이터와 항상 '참'인데이터 모든 사용자가 리턴된다. union은 합집합으로 두개의 셀렉트 구문을 포함시킨다. 아이디가 1인 사용자와 모든 사용자의 이름과 비밀번호 리턴. 뒤에 #은 주석처리. 1' union select 1,1# 입력시 합집합으로 같이 출력. 1' union select 1,1,1# 3개를 넣었는데 에러가 뜬다? 이전 셀렉트 문 컬럼의 갯수는 2개만 사용된 것을 알 수 있다. 또 다른 방법 ORDER BY 는 정렬할 때 사용하는데 1' order by 1# 에러 발생 안함 1' order by 2# 에러 발생 안함 1' order by 3# 에러 발생! 컬럼 갯수는 2개라는 것을 알 수 있다. 유니온을 사용하면 정확한 값을 입력할때까지 대입해봐야하지만.. 2022. 4. 15.
[XSS]드림핵 https://dreamhack.io/wargame/challenges/28/ XSS 취약점! URL을 확인하는 봇이 구현된 서비스! 해킹 시작! 사이트가 깔끔하게 나온다. 먼저 flag 를 눌러보자 1이라고 적어보자 good 이 나온다. 뭘 적어도 같다. 제출 할 때마다 memo 페이지에 hello라는 글이 생긴다. 도 적어보고 "> 적어봤지만 따로 뜨진 않는다. 필터링에 걸리는 듯?? [최근 잘 방어된 사이트의 경우 거의 대부분의 HTML Tag와 Attribute가 필터링 목록에 들어가있습니다. 이런 경우엔 DOM XSS 라 불리우는 ?param="> 와 같이 HTML Tag를 직접 삽입해야 하는 XSS는 대부분 필터링에 걸려 실행되지 않습니다.] 바로 구글링 '자바스크립트 코드를 트리거하는 방법'.. 2022. 2. 23.
[SQL 인젝션] Union, Logic SQL Injection 공격 기법 Logic Union Subquery Error Based Blind SQL DML 구문에 대한 이해 SELECT UPDATE INSERT DELETE Exploit Technique DBMS Fingerprinting System Tables WAF Bypass Out Of DBMS DBMS 주의사항 Logic 논리 연산을 이용한 공격 방법입니다. 대표적인 논리 연산자로는 and 연산과 or 연산이 있습니다. ABA && B (and 연산)A || B (or 연산) 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 1 위 연산표와 같이 and 연산은 모든 조건이 참인 경우에만 결과가 참이 되지만, or 연산은 하나의 조건이라도 참이 되는 경우 결과는 참이 됩니다... 2022. 2. 21.
[SQL 인젝션] LORD OF SQLINJECTION - cobolt 풀이 아이디를 1로 참으로 만들어버리면 "너는 관리자가 아니야" 라고 나온다. 자세히 읽어보면 아래에 if($result['id'] == 'admin') solve("cobolt"); 아이디가 admin 이라고 친절하게 나와있다. ?id=admin'%23 아이디에 어드민을 넣고 뒤를 주석 처리 해버리니 바로 클리어! %23이 궁금하다면 전 게시글에 첨부했지만 url encoding 검색~ 2022. 2. 20.
[SQL 인젝션] LORD OF SQLINJECTION - gremlin 풀이 데이터베이스 -> 테이블 ->컬럼들- > 필드 정보 테이블 안에는 정보가 들어있다. 사이트를 해킹하지 말라고 적혀있고, 쿼리문 $query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'"; 을 통해 URL 뒤에 ?id=1&pw=1 쓰면 상단 query 에 기입된다. 결과가 참인 구문을 주면 해결이 될 듯 하다. ?id=&pw=1' or'1'='1'%23 이렇게 적거나 ?id=1' or'1'='1'%23 (참고로 뒤에 주석처리 #은 %23 으로 써야된다.) 아이디는 1 이거나 참이다 or 의 특성상 한쪽 결과가 참이면 참이 되버리기 때문에 or 1=1, 즉 1=1 이 참이므로 참인 결과가 된다. 뒤 코드는 주석을 통해 .. 2022. 2. 20.
[시큐어코딩]SQL Injection OWSAP 에 항상 거론 되는 인젝션 공격. 가장 위협적이며 가장 쉬운방법. A1Injection (인젝션)SQL, OS, XXE(Xml eXternal Entity), LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, 인터프리터로 보내질 때 발생한다. 공격자의 악의적인 데이터는 예상하지 못하는 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있다. Injection은 주입이라는 뜻으로, SQL 언어를 주입하여 해킹을 하는 기법을 뜻한다. 방어방법. Statement 대신, PreparedStatement같이 안전한 구문을 사용한 보안코딩 사용. statement구문을 사용시에는 꼭 컬럼값에 Injection을 유발할 수 있는 '(외따옴표) ;.. 2022. 1. 21.