반응형

SQL Injection 14

[Lord of SQL Injection] cobolt 문제 풀이

문제 설명 preg_match함수로 prob, _, ., () 의 문자들이 필터링 되어있다. id값이 admin이면서 pw가 맞으면 문제를 해결할 수 있다. 먼저 id값에 admin을 넣어보자 id값에 admin을 입력하였는데 문제가 해결되지 않았다. 왜냐하면 뒤에 and 구문이 성립하지 않았기 때문이다. 이문제를 해결하기 위해서는 비밀번호를 알아야한다. 하지만 우리는 비밀번호를 알기 힘들다. 어떻게 하면 문제를 해결할 수 있을까?? 쿼리문을 보자. select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}') 첫번째 방법 쿼리문에 mysql의 주석인 #이 필터링이 되어 있지 않기 때문에 id 파라미터에 id = admin'#을 넣..

[DVWA] - SQL Injection(Blind) Low 단계

SQL Injection(Blind) 블라인드 SQL인젝션이란 결과를 직접적으로 알 수는 없어도, 참과 거짓일 때의 결과 차이를 분석하여 어떤 정보를 알아내는 기법이다. User ID값에 1을 한번 넣어보겠다. ID값에 1을 입력하니, 데이터베이스에 존재한다는 메시지만 나온다. 다음 '(싱글쿼터)를 입력하여 어떤 결과를 나타내는지 확인하겠다. id값에 1부터 6까지 넣어봤는데 1에서 5까지는 계정이 존재를 하였고 6부터는 계정이 존재하지 않는다. 싱글쿼터를 입력하니 데이터베이스에 사용자가 존재하지 않다고 뜬다. 그냥 sql injection문제에서는 싱글쿼터를 입력하면 에러가 났는데 sql injection(blind)에서는 에러가 나지 않는다. 그래서 sql 쿼리문이 사용되고 있는지 알기 어렵다. 만약..

WEB hacking/DVWA 2022.10.09

[DVWA] - SQL Injection Low 단계

SQL Injection Where 구문 우회 SQL Injection문제이다. 소스코드를 한번 보겠다. id값을 get방식으로 받고 쿼리 부분에서 user_id가 id인 users테이블에서 first_name과 last_name을 가져오는 것을 알 수있다. User ID부분에 '(싱글쿼터)를 넣으면 그림 3과 같은 에러가 뜬다. SQL 문법에서 에러가 났다고 한다. 왜냐하면 쿼리 부분을 보면 user_id = ''' 이라고 들어가기 때문에 싱글쿼터의 쌍이 맞지않아 형식에러가 발생한다. User ID에 1을 넣어본다. User ID에 1을 넣으면 ID가 1인 사용자인 admin 사용자가 출력한다. 이제 아래와 같은 값을 넣어 보겠다. ' or '1' = '1 sql 쿼리문을 조작하여 user_id = '..

WEB hacking/DVWA 2022.10.08

[Lord of SQL Injection] gremlin 문제 풀이

문제 정보 문제 이름 : gremlin https://los.rubiya.kr/ Lord of SQLInjection los.rubiya.kr SQL Injection공부할때 매우 좋은 워게임 사이트라고 한다. 문제 설명 이번 문제에서는 코드가 주어진다. preg_match라는 필터링 함수가 있다. preg_match함수는 해당 문자열에서 전달받은 정규 표현식과 패턴이 일치하지 검사하는 함수이다. preg_match의 첫 번째 인수는 필터링 할 문자를 넣고 두 번째 인수에는 우리가 입력한 문자를 넣고 세 번째 인자에는 필터링할 문자와 우리가 입력한 문자가 일치할 경우 그 문자를 $matches에 배열로 저장한다. 즉 필터링이 당한 문자가 matches에 저장된다는 소리이다. 매칭에 성공하면 1이 반환되고..

반응형