티스토리 뷰

hacking/LOS

<LOS> - 1번(gremlin)

khe0616 2018. 3. 18. 21:36





1번 문제에 들어가면 나오는 PHP 코드이다.


일단 "./config.php"를 include  시킨다.


그리고 정규표현식 /prob|_|\.|\(\)/ 을 이용해서 id나 pw에

"prob", "_", ".", "()" 이 포함된 경우 "No Hack ~_~" 이라는 메시지가 출력되도로 해놓았다.(/ 뒤에 있는 i는 대소문자를 구분하지 않겠다는 flag 이다.)


계속 코드를 읽어보면

쿼리문 $query를 전송했을때, 반환되는 결과 값(column 이름 -> id)이 존재하기만 하면 문제가 해결된다.


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










이 페이지에서 URL에 #을 입력했을때 인식되지 않으므로 URL 인코딩 된 값을 넣어 주어야 한다.

# -> %23

' -> %27 (그냥 참고할 것)

따라서, 주소 뒤에 ?id='or 1=1 %23 을 입력해준다면 쿼리문은

select id from prob_gremlin where id='' or 1=1 ' and pw='{$_GET[pw]}'

이 되어, where(조건) 값이 true가 된다. (MYSQL에서 #은 주석 기호이다.)

조건이 true이므로 테이블에서 id라는 column의 값들을 반환받을 수 있다.








클리어

'hacking > LOS' 카테고리의 다른 글

<LOS> - 6번(wolfman)  (0) 2018.04.06
<LOS> - 5번(wolfman)  (0) 2018.04.06
<LOS> - 4번(orc)  (0) 2018.04.06
<LOS> -3번(goblin)  (0) 2018.03.22
<LOS> - 2번(cobolt)  (0) 2018.03.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함