#About


[그림 1] - 문제 화면




#Solution


get의 파라미터로 id와 pw가 날아가던 이전 문제들과 달리 해당 문제의 인젝션 벡터는 오로지 no라는 변수이다


필터링은 된 문자열은 싱글쿼터, 더블쿼터, 그레이브가 추가 되었으며 id 컬럼에서 admin을 뽑아내면 문제가 해결 된다


[그림 2] - no=1


no 변수에 1을 입력했을 때, Hello Guest를 출력하는 것으로 미루어 해당 테이블에 첫 번째 레코드에 guest가 들어 있음을 


유추할 수 있었고, 목표는 admin을 출력하는 것이기 때문에 아래와 같이 쿼리를 날려주었을 때 admin 값을 뽑을 수 있었다


[그림 3] - 구문 1



[그림 4] - 구문 2



[그림 5] -구문 3


구문 3은 [그림 2]에서 guest의 no 값이 1임을 알고, admin의 no 값이 2라고 가정을 하고 난 뒤의 결과 값이다



'Wargame' 카테고리의 다른 글

[Lord of SQL Injection] Wolfman  (0) 2017.10.27
[Lord of SQL Injection] Orc  (0) 2017.10.27
[Lord of SQL Injection] Cobolt  (0) 2017.10.25
[Lord of SQL Injection] Gremlin  (0) 2017.10.25
CodeEngn Basic 20  (0) 2017.10.23

#About


[그림 1] - 문제 화면




#Solution


해당 문제는 이전 gremlin과 달리 쿼리의 결과에 담긴 id 값이 admin일 때 문제가 풀리게 된다

get의 파라미터로는 id와 pw이며, pw 값은 md5 해쉬화되어 쿼리가 질의 된다

적용 된 필터링은 이전 문제와 같기에 아래와 같은 구문을 적어주면 문제가 풀리게 된다

[그림 2] - 구문 1



[그림 3] - 구문 2




'Wargame' 카테고리의 다른 글

[Lord of SQL Injection] Orc  (0) 2017.10.27
[Lord of SQL Injection] Goblin  (0) 2017.10.25
[Lord of SQL Injection] Gremlin  (0) 2017.10.25
CodeEngn Basic 20  (0) 2017.10.23
CodeEngn Basic 19  (0) 2017.10.19

#About


[그림 1] - 문제 화면




#Solution


get의 파라미터로 넘어가는 id와 pw 변수에 preg_match 함수와 정규식으로 필터링이 적용 되어 있었으며 가장 기본적인


SQL Injection 구문을 사용함에 있어 필요한 싱글 쿼터가 필터링 되어 있지 않았기에 사실 상 문제풀이와 관련 없는 행위를 하지 않는 다면 


해당 문제에서의 필터링은 무의미하다 볼 수 있기에 아래와 같은 구문 들을 넣어 주면 SQL 쿼리문이 참 값이 되면서 문제가 풀리게 된다


[그림 2] - 구문 1



[그림 3] - 구문 2



[그림 4] - 구문 3




'Wargame' 카테고리의 다른 글

[Lord of SQL Injection] Goblin  (0) 2017.10.25
[Lord of SQL Injection] Cobolt  (0) 2017.10.25
CodeEngn Basic 20  (0) 2017.10.23
CodeEngn Basic 19  (0) 2017.10.19
CodeEngn Basic 18  (0) 2017.10.17

+ Recent posts