SQL Injection(8)
-
Lord Of SQL Injection [ 7.Orge ]
preg_match 함수에서 or , and 사용을 금지하고 있고, 비밀번호를 GET방식으로 입력받고, add|ashes함수를 이용해 변환한 뒤 DB에 저장된 패스워드와 비교한다 5번 오크문제와 같은 패스워드를 유추하는 블라인드 인젝션 문제입니다 [ 패스워드 유추 과정 ] 1> 패스워드 길이를 알아낸다 URL: los.eagle-jump.org/orge_40d2b61f694f72448be9c97d1cea2480.php?pw=9999' || id='admin' %26%26 length(pw)=8 %23 2>패스워드의 첫번째 글자부터 유추한다 URL: los.eagle-jump.org/orge_40d2b61f694f72448be9c97d1cea2480.php?pw=9999' || id='admin' %26%..
2017.09.12 -
Lord Of SQL Injection [ 6.DarkElf ]
preg_match함수에서 or , and 사용을 막아두고있다 or와 and를 대체할 수 있는 문자를 찾아야한다 or => " || " and => " && " , &&는 URL에서 변수구분자로 사용하고 있으므로 아스키코드 26을 사용하도록 한다 => %26 URL: https://los.eagle-jump.org/darkelf_6e50323a0bfccc2f3daf4df731651f75.php?pw=9999' || id='admin' %23 => SELECT id FROM prob_darkelf WHERE ( id='guest' and pw='9999' ) || id='admin' #'
2017.09.08 -
Lord Of SQL Injection [ 5. Wolfman]
pre_match 함수에서 공백을 사용할 수 없도록 제한을 두었다 SQL문에서 공백을 대체할 수 있는 문자들이 무엇이 있는지 살펴보자 0x09: NULL ( 탭 ) 0x10: New Line ( 줄 바꿈 ) 0x11: Vertical Tab 0x12: New Page ( 프린터 용지 먹임 ,새 페이지 ) 0x13: Carrige Return ( 줄바꿈 ) 해당 문자들을 URL에서 % 기호를 이용해서 사용할 수 있고, 주석을 이용해서 문자열을 구분시킬 수 있다 URL: https://los.eagle-jump.org/wolfman_f14e72f8d97e3cb7b8fe02bef1590757.php?pw=9999'or%0did='admin'%0a%23
2017.09.08 -
Lord Of SQL injection [ 4.Orc ]
GET방식으로 pw를 입력받는다 add|ashes() 함수를 통해서 비밀번호를 변환하고 그 비밀번호에 일치하는 비밀번호를 테이블에서 찾아낸다처음 입력한 패스워드와 테이블의 패스워드를 비교하여 일치하면 문제가 풀린다=> 직접 패스워드를 알아내야 하는 블라인드 인젝션 문제이다 사용할 함수는 ascii() , length() , substring() = substr() 함수이다ascii() : 입력받은 인자를 아스키 코드 10진수로 변환한다 length( 문자열 ) : 문자열의 길이를 반환한다substring( 문자열 , 시작위치 , 길이 ) : 문자열의 시작위치에서 잘라낼 문자개수를 지정하여 반환한다=> substr( 'abcd' , 2 , 2 ) = bc [ 비밀번호 유추 과정 ]1> 패스워드의 길이를 확..
2017.09.08 -
Blind SQL injection
이전의 게시글에서 사용한 웹 페이지 소스코드에서 while문이 있어서 쉽게 DB데이터를 가져올 수 있었다 하지만 실제 공격에서는 해당 while문처럼 편리하게 코드를 볼 수 없다다음 웹페이지에서 DB데이터를 확인할 수 있는 방법에 대해 알아보자 [ http://192.168.6.123/view.php ]12345678910111213141516Colored by Color Scriptercs [ 알아야할 SQL문 ]1> limit mysql> SELECT column_name FROM columns limit 0,10 ;=> SELECT의 결과에서 0번째 데이터를 시작으로 10개의 데이터를 출력 ( 0번 줄 ~ 9번째 줄 ) mysql> SELECT column_name FROM columns limit..
2017.09.06 -
SQL injection 실습 / Blind SQL injection
Blind SQL injection① SELECT 쿼리 실행시의 취약점을 이용한다② DB내의 정보를 유출시킨다 실습을 위해서 DB와 SQL injection취약점이 존재하는 사이트를 하나 만들겠습니다 [ http://192.168.6.123/view.php ]123456789101112131415161718Colored by Color Scriptercs [ mysql DB 및 테이블 생성 ] 생성한 Table: anews , fnews, news [ 익혀야할 개념 ]* UNION 연산자mysql> Query1 union Query2 쿼리1과 쿼리2의 결과를 합해서 출력한다[ 조건1 ] 쿼리1과 쿼리2의 사용하는 쿼리문은 같아야합니다 ( ex) SELECT * ... union SELECT * ... )..
2017.09.05