일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- apollo react native
- 홍대 토라비
- 운정 소바동
- 앙버터마카롱
- graphql with reactnative
- 화이트 해커를 위한 웹 해킹의 기술
- 예쁜술집 예술
- 비동기배열처리방법
- graphql
- 도그존
- promise메서드
- 비동기배열
- 신촌 소문난집
- 홍대 예술
- 금별맥주
- 화이트해커를 위한 웹 해킹의 기술
- graphql mutation error
- 잠실새내 도그존
- 홍대 카페 장쌤
- 고르드
- graphql 400
- 토라비
- apolloclient
- useMutation error
- graphql react native
- 지보싶 신촌점
- promise처리
- typescript
- graphql with RN
- 잠실새내
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
LOS 1~3번 풀이 (gremlin, cobolt, goblin) 본문
1번 gremlin
solve("gremlin")의 조건을 보면 $result['id']가 존재할 때 gremlin이 해결되는 것을 볼 수 있다.
조건에 pw는 없기 때문에 pw부터는 주석처리 할 예정
id는 WHERE 조건을 항상 참으로 만들어 $query에 id를 담는다.
?id=' or 1=1%23 을 URL에 넣어준다. (1=1은 항상 참, or 연산에 의해 id가 참이 된다.)
2번 cobolt
gremlin과 마찬가지로 solve 조건에 pw가 존재하지 않으니 pw 부터는 주석처리한다.
이번에는 $result['id'] == 'admin'이어야 solve가 실행되기 때문에 id에 admin을 넣어주고 그 뒤는 주석처리해준다.
?id=admin'%23 을 URL에 넣어준다.
3번 goblin
이번에도 id가 admin이어야 문제가 해결된다.
현재 쿼리문에는 id='guest'가 지정되어 있어서 이를 바꾸어줄 수는 없다.
id='guest'와 no= 가 and 연산으로 묶여있는데, 이를 거짓으로 만들어주는 no 값을 넣고 (id='guest' 전체가 거짓이 된다.)
or 연산자를 추가해서 id에 admin을 넣어줄 것이다!
-> (id='guest' and no=0) 전체가 거짓이 되고, 뒤의 or id='admin' 만 참이 된다.
하지만 if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 구문에서 ' " ` 를 사용하면 no Quotes를 출력하면서 SQL 구문이 적용되지 않는다.
따라서 따옴표를 사용하지 않으면서 id에 admin을 넣어주어야한다.
->admin를 문자열로 넣어준다. (아스키 코드 이용)
?no=0 or id=char(97,100,109,105,110)%23
(no가 1만 아니면 된다. no가 1이면 and 구문이 참이되어 id='guest'가 되기 때문)
'wargame 풀이 > LOS' 카테고리의 다른 글
LOS 10번 풀이 (skeleton) (0) | 2020.10.14 |
---|---|
LOS 8~9번 풀이 (troll, vampire) (0) | 2020.10.09 |
LOS 7번 풀이 (orge) (0) | 2020.10.09 |
LOS 5~6번 풀이 (wolfman,darkelf) (0) | 2020.10.05 |
LOS 4번 풀이 (orc) (0) | 2020.10.04 |