Wargame Site/SQL injection
-
SQL injection 바로 잡기 #1 Error Based Blind SQL injection 9eNWargame Site/SQL injection 2019. 5. 20. 00:19
최근 SQL injection 실습 사이트를 만들어보면서 그 간 공부하면서 잘못 잡았던 개념들을 정리하고자 SQL injection 바로 잡기 섹터를 구성했다. 직접 구현해보지 않으면 모를만한 내용을 다룰 예정이다. Los 28 번 문제인 프랑켄슈타인의 궁금점이 사이트 구축을 통해서 해결이 되었다. 9eN 의 문제였다. 근본적으로 Error 의 종류부터가 다른 것이었다. 1. Syntax Error 2. Logical Error 문법 에러는 Query 자체가 실행되지 않은 채로, 바로 에러 메세지를 반환하는 특성을 지니고 있다. 하지만, 논리적 에러는 Query 자체는 실행이 되지만, 논리적 오류로 인해 메세지를 반환하는 특성을 지니고 있다. 따라서, Error Based SQL injection 을 하..
-
Test 중입니다.Wargame Site/SQL injection 2019. 5. 15. 09:37
처음으로 구축해보는 WarGame Site !! 혹시나해서 계속 시험 중입니다.
-
|Lord of SQL_injection| #32 AlienWargame Site/SQL injection 2019. 4. 8. 16:49
마지막 문제 Alien 이다. LOS 라는 대장정의 마침표를 찍어볼까아?? 띠용.. 문제를 풀기위해서 만족해야하는 4가지 조건이 있다. 우선 두 개의 쿼리가 있는 것을 알 수 있다. (query, query2) 1. query 의 결과 id 는 admin 이여야 한다. 2. query 의 결과 id 는 admin 이면 안된다. 3. query2 의 결과 id 는 admin 이면 안된다. 4. query2 의 결과 id 는 admin 이여야 한다. 1, 2 번 3, 4 번의 조건이 너무 모순적이었다. 단순한 문제는 아니라고 생각했다. 만약 계속 바뀌는 값을 중간에 설정할 수 있다면 문제가 해결될거 같다는 생각이 들었다. 예를 들어, 쿼리의 결과인 id 가 시간단위로 바뀐다면 if 문을 파고들 수 있지 않을..
-
|Lord of SQL_injection| #31 ZombieWargame Site/SQL injection 2019. 4. 8. 14:32
드디어 마지막 줄로 내려왔습니다 여러분 !! 좀비? 보다 벌통같은 녀석이다. 앞서 봤던 QUINE 을 사용하면 풀.릴.것.같.지.만 ACE 가 필터링 되어버렸다. 결국 이전 문제를 마주쳤을 때와 똑같은 상황이었다. Hint 라도 얻기위해 Google 을 펼쳐들었다. information_schema.processlist 에 있는 info 에는 실행하는 명령어가 들어가 있다는 것을 알게되었다. union select 를 사용해서 info 의 내용을 꺼내본 결과 다음과 같은 것을 확인 할 수 있었고, 이제 substring 으로 해당 문자열을 뽑으면 될 것 같았다. 38 에서 73 까지 걸러냈고 그 결과 문제가 해결됬음을 확인할 수 있었다.
-
|Lord of SQL_injection| #30 OuroborosWargame Site/SQL injection 2019. 4. 8. 13:58
이제 세 문제 정도 남았다. 입력한 pw 와 질의결과 pw 가 같아야한다는 문제이다. pw 의 결과가 감지되면 다음과 같은 결과가 출력된다. 출력된 결과와 파라미터의 값이 같아야한다. 하지만, 다음과 같은 명백한 문장의 경우 아무런 출력결과가 나오지않았고, 어쩌면 pw 의 값이 처음부터 존재하지 않았을 것 같다는 예감이 들었다, 결국에는 Google 의 힘을 빌렸다. 그 결과 replace 를 활용하여 입력값과 출력값을 같게해주는 'QUINE' 이라는 구문을 발견했다. SELECT REPLACE(REPLACE('SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS Quine',CHAR(34),CHAR(39)),CHAR(36),'SELECT REP..
-
|Lord of SQL_injection| #29 PhantomWargame Site/SQL injection 2019. 3. 15. 18:31
개학과 동시에 직책과 해야할 공부가 늘어나고 있다!! 하지만, 보안에 대한 공부는 멈추면 안되기에 ~~ 29 번 문제 Phantom 이다.이번 문제는 "insert" 를 이용한 SQL Injection 이라는 것을 알 수 있다.joinmail 에 인자를 전달해서 푸는 문제인 것 같다. insert 의 취약한 점은 별도의 필터가 없을경우, insert 하나로 여러개의 열을 삽입가능하다는 점이다. 이 점이 심각한 이유는 경우에 따라 권한도 조정이 가능하다는 점이다. 예를들어 계정 생성시에 priv 라는 필드에 의해 권한이 부여되는 사이트가 있을 경우, 대부분 일반계정이 할당되어있는 쿼리문을 사용할 것이다. 하지만, 이를 악용하면 임의적으로 priv 필드를 조정할 수 있기 때문에 문제가 발생한다. insert..