의미없는 블로그
Lord of SQL Injection (1번) 본문
인젝션 연습 사이트~
그냥 회원가입 하고 하면 된다
#1번 -----------------------------------------------------------------------------------------------------------
if($result['id']) solve("gremlin"); 라고 되어있는데
$result['id'] 가 참이어야 문제가 풀린다고 하네
바로 그 위에 보면
$result = @mysql_fetch_array(mysql_query($query)) 로 쿼리를 실행시켜서 결과를 저장하고 있지롱
mysql_query 는 쿼리 실행시키는 거고
mysql_fetch_array 는 쿼리를 실행한 결과 출력되는 첫 행의 값들을 배열로 저장한다고 한다
$result[필드명] 하면 출력된 첫 행에서 그 필드명에 해당하는 값을 의미
만약에 쿼리가 아래와 같으면
$result 는 test, test, 조성현, 111111-1111111 ..... 이 되는건가?
그럼 $result[mem_id] 는 test 이겠꾼
무튼 이런식이다
어쨌든 $result['id'] 가 참이라는 것은
if 문에서 참은 0 이외의 모든 값이니깐 뭐라도 한줄 결과가 출력되면 다 참이 된다고 볼 수 있겠다
뭐라도 한줄 출력되면 그 줄의 id 필드값이 $result['id'] 가 되는거니깐..
즉 참인 쿼리를 만들어 주기만 하면 된다~
쿼리를 참으로 만들어 주면 아래와 같이 최소 한줄 이상은 뜨지
다시 코드를 보면
{$_GET[id]}, {$_GET[pw]} 로 id, pw 값 받아서 쿼리에 넣고 있으므로
id, pw 파라미터 2개를 생성할 수 있겠다
id=1' or 1=1# 하면 전체 쿼리는 참이 되어 GREMLIN Clear!
아래처럼 해도 된다
id=admin'# (아이디 알고있는 경우)
pw=1' or 1=1#
pw=1' or 1='1
'# 나 > pentest (WEB)' 카테고리의 다른 글
[Tools] Echo Mirage 사용하기 (0) | 2019.08.02 |
---|---|
Lord of SQL Injection (2번) (0) | 2019.07.17 |
webhacking.kr (3, 4, 5번) (0) | 2019.07.12 |
webhacking.kr (1, 2번) (0) | 2019.07.09 |
webhacking.kr (0) | 2019.07.09 |