SQL Injection (baby-sqlite -- Dreamhack)

이원찬·2023년 12월 5일
0

Web Security

목록 보기
8/8

https://dreamhack.io/wargame/challenges/1

본 문제의 코드를 살펴보자.

post로 uid, upw, level를 받고, sqli filter 로 필터링 하고있다.

그렇다면 사이트에 접속해보자.

사이트에는 uid, upw만 입력이 가능하다.
uid, upw로 공격하기에는 ' 를 필터링 하기때문에 '이 없는 level로 공격하는게 좋아보인다.
그런데 사이트상에는 level로 요청을 줄수 없기 때문에 프록시를 사용하여
level를 끼워 넣는다.

그렇다면 이제 admin을 요청해야 한다. 그런데 admin은 필터링 되어있기 때문에 CHAR로 우회할 생각이다.

Char(97) a
Char(98) b
Char(99) c
Char(100) d
Char(101) e
Char(102) f
Char(103) g
Char(104) h
Char(105) i
Char(106) j
Char(107) k
Char(108) l
Char(109) m
Char(110) n
Char(111) o
Char(112) p
Char(113) q
Char(114) r
Char(115) s
Char(116) t
Char(117) u
Char(118) v
Char(119) w
Char(120) x
Char(121) y
Char(122) z

해당 char를 토대로 쿼리문을 작성해보면
/**/union/**/vlaues(char97)||char(100)||char(109)||char(105)||char(110))
로 할수있다. /**/를 공백 대신 사용하였다.
위 쿼리문을 프록시를 이용하여 요청보내면 flag 값이 반환된다.

profile
개발과 보안을 공부하고 있습니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN