Lord of SQL Injection 7단계, orge풀이
·
Archive/Hacking
이번 포스팅은 7단계, orge 풀이 포스팅이다. 사실 이것도 블라인드 인젝션인데, 4단계와 핵심 함수와 과정이 같으니 4단계가 아직 이해가 되지 않은 사람들은 4단계로 다시 돌아가길 바란다. 그럼 코드부터 확인하자. 6단계와 마찬가지로 preg_match문을 통해 or와 and가 막혀있다. 이것이 4단계와의 차이점이고, 나머지 과정은 전부 같다. Load of SQL Injection 4단계 잘 알고 있지만 아주 잠깐 헷갈리는 사람들을 위해 덧붙이자면, 1. ascii() : 입력받은 인자를 아스키 코드 10진수로 변환하는 함수 2. length() : 문자열의 길이를 반환한다. 3. substring(문자열, 시작위치, 길이) : 문자열의 시작위치에서 잘라낼 문자 개수를 지정하여 반환하는 함수 ex)..
Lord of SQL Injection 6단계, darkelf 풀이
·
Archive/Hacking
이번 포스팅은 load of sql injection 6단계인 다크엘프 풀이이다. 여지없이 바로 코드로 넘어가보자! 사실 전 단계인 블라인드 인젝션이 조금 어려웠지 이번 문제는 그닥 어려운 문제는 아니다. 여기서 가장 핵심이 되는 코드를 보자. preg_match를 통해 or 과 and 는 막혀있다. 하지만 문제를 풀려면 쿼리문을 끊고 or로 id값을 admin으로 줘야하는 상황이다. sql 인젝션 구문을 어떻게 작성해야 할까? 더보기 ?pw=' || id='admin'%23 or 는 || 와 같은 뜻이고, and는 &&와 같다! 이 간단한 것만 알고 있다면 이 문제는 쉽게 풀렸을 것이다.
Lord of SQL Injection 5단계, wolfman 풀이
·
Archive/Hacking
이번 포스팅은 늑대인간 편이다! 빠르게 코드부터 살펴보자. 여기서 눈여겨 볼 코드는 이 코드! preg_match를 통해 whitespace, 그러니까 공백은 여기서 막아놨다. 우회를 어떻게 진행해야 할까? 우선 기본적으로 pw값을 id='guest' 의 값과 함께 거짓이 되게 만든다. ?pw=123' or id='admin'%23 원래 같았으면 이렇게 푸는 것인데, 공백이 막혔으므로 이것저것 시도해본다. 첫번째로 내가 시도해 본것은, %20 ! 그러니까 아스키코드 값을 가지고 시도해본 것이다. 물론 이렇게 쉽게 풀릴리가 없당 막혔당 헤헤 다음으로 시도해본 것은 탭! 탭의 아스키코드값 9를 가지고 %09를 통해 시도해본다. 더보기 ?pw=394'%09or%09id='admin'%23 클리어!
Lord of SQL Injection 4단계, orc 풀이
·
Archive/Hacking
3단계 고블린에 이어 4단계 orc 풀이를 들어가겠다. 사실 이 문제는 blind injection을 이용해 푸는 문제인데, 나는 잘 몰라서 인터넷의 힘을 빌렸다. 다른 사람들은 blind injection을 쉽게 푸는 프로그램을 파이썬으로 작성하던데 나는 파이썬을 몰라서 노가다로 풀었다. 문제를 푸는데 핵심적인 역할을 하는 쿼리문부터 살펴보겠다. 쿼리문의 조건문을 보면 id='admin'이고, 우리가 임의로 변경할 수 있는 변수인 pw가 있다. if (($result['pw']) && ($result['pw'] == $_GET['pw'])) solve ("orc"); 문제를 해결하려면 데이터베이스에 id가 admin 인 pw값을 우리가 알아야한다. 자, 문제는 그걸 어떻게 알 수 있느냐! 다음 아래의 ..