본문 바로가기
개인 공부/WEB

[웹해킹] LOS 1 - (Gremlin)

by 아메리카노와떡볶이 2021. 5. 29.
728x90
Lord of sql injection - gremlin 풀이

먼저 php문을 살펴보겠습니다.

우선 preg_match 함수를 통해, 'prob' , '_' , '.' , '()' 에 필터링이 되어있습니다. ( i는 필터링시 대 소문자를 구분하지 않는다는 뜻.)

 

$query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";

그리고 쿼리문을 살펴보면, id와 pw가 둘 다 참일때, id를 prob_gremlin 테이블에서 select 해올 수 있습니다.

 

if($result['id']) solve("gremlin");

문제의 최종 목적은 solve()를 동작시키는 것인데, 동작하기 위한 조건은 id가 존재할때입니다. 따라서 id가 무엇이든 상관없이 존재하기만 한다면 1번 문제를 해결할 수 있습니다.

 

위의 쿼리문을 참으로 만들기위해서 ?id=1' or 1=1# 을 넣어서 

id=1 은 false이지만 or 1=1 을 통해 늘 True가 되게 합니다. 그리고 뒤의 구문을 주석처리하여 항상 True가 되게 수정합니다.

이때 앞으로 주의해야할점은 URL 인코딩 코드 값으로 입력을 하는 것이 용이하므로,

기호 #(주석처리기능)%23

기호 ' '(space)은 %20

기호 ‘(single quotation)%27을 사용합니다.

 

728x90

'개인 공부 > WEB' 카테고리의 다른 글

[웹해킹] LOS 6 - (Darkelf)  (0) 2021.05.30
[웹해킹] LOS 4 - (Orc)  (0) 2021.05.30
[웹해킹] LOS 3 - (Goblin)  (0) 2021.05.29
[웹해킹] LOS 2 - (Cobolt)  (0) 2021.05.29
[웹해킹] 1주차 리뷰  (0) 2021.05.10

댓글