Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- promise처리
- 잠실새내 도그존
- 도그존
- useMutation error
- 토라비
- 홍대 토라비
- graphql with RN
- 고르드
- 앙버터마카롱
- 잠실새내
- 화이트해커를 위한 웹 해킹의 기술
- apolloclient
- 금별맥주
- graphql 400
- 운정 소바동
- typescript
- 비동기배열처리방법
- graphql mutation error
- 홍대 카페 장쌤
- 비동기배열
- graphql with reactnative
- 홍대 예술
- 화이트 해커를 위한 웹 해킹의 기술
- promise메서드
- 예쁜술집 예술
- 신촌 소문난집
- 지보싶 신촌점
- graphql
- graphql react native
- apollo react native
Archives
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
challenge (old-18) 본문
18번 풀이
이번에는 대놓고 SQL injection을 이용하라고 하는 것 같다.
view-source 버튼을 이용해서 해당 페이지의 소스코드를 보았다.
그 중에서도 SQL injection 공격에 필요한 부분만 가져와봤다.
<?php
if($_GET['no']){
$db = dbconnect();
if(preg_match("/ |\/|\(|\)|\||&|select|from|0x/i",$_GET['no'])) exit("no hack");
$result = mysqli_fetch_array(mysqli_query($db,"select id from chall18 where id='guest' and no=$_GET[no]")); // admin's no = 2
if($result['id']=="guest") echo "hi guest";
if($result['id']=="admin"){
solve(18);
echo "hi admin!";
}
}
?>
preg_match에서 스페이스바(공백), /, (, ), |, &, select, from, 0x 등을 필터링하고 있다.
얘네를 사용하면 no hack을 출력하고 exit 한다.
solve 조건은 id='admin'이다.
그런데 sql 쿼리문에는 id='quest'와 no가 and 연산으로 묶여있기 때문에 이를 부정하는 no값을 넣어주어야하고
id='admin'으로 만들어주어야한다.
따라서 no값에는 0을 넣어주고 id='admin'을 or 연산으로 묶어주면 앞의 id='guest' and no=0이 거짓이 되기 때문에 id='admin'인 사용자를 전달하게 된다.
(admin의 no가 2라고 했으니 no=2를 넣어주면 id=admin인 사용자를 반환할 것!)
0 or no=2을 전달하려고 했으나 공백을 허용하지 않기 때문에 같은 역할을 하는 tab(%09)을 이용하자
0%09or%09no=2을 입력란에 넣어주었는데, 다음과 같이 실행되지 않았다.
우리가 보낸 %09에서 %도 문자로 인식을 해서 %를 나타내는 %25가 붙어서 %09로 인식하지 않았기 때문에 쿼리문이 유효하지 않게 되었다.
그래서 입력란말고 URL을 통해 직접 전달하는 방식을 사용했다.
?no=0%09or%09no=2를 전송하면 문제가 해결된다!
'wargame 풀이 > webhacking.kr' 카테고리의 다른 글
challenge (old-45) (0) | 2021.01.15 |
---|---|
challenge (old-44) (0) | 2021.01.14 |
challenge (old-17) (0) | 2020.10.16 |
challenge (old-14) (0) | 2020.10.15 |
challenge (old-01) (0) | 2020.09.24 |
Comments