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
- 풀스택
- 웹프로그래밍과
- 중3
- 인공지능
- 이비즈니스과
- pwnable.kr
- 특별전형
- 워게임
- 디미고
- 대나무숲
- graphql
- TensorFlow
- 머신러닝
- 디미고특별전형
- 디지털컨텐츠과
- coursera
- 등교개학
- Flutter
- 해킹방어과
- apollo
- 플러터
- 일상
- WebHacking
- 웹개발
- 디미고입학
- 학생
- 시스템해킹
- 코로나19
- 딥러닝
- 우분투
Archives
- Today
- Total
꿈이 너무 많은 한 대학생의 공간
Webhacking.kr(old) 6번 문제풀이 본문
이번 문제는 쉬운 편입니다.
소스를 확인해보겠습니다.
첫 번째 코드는 user 쿠키값이 없을 시의 조건문입니다.
user 쿠키값이 없을 시 "guest", "123qwe" 를 각각 base64 인코딩을 20번 반복하고 1, 2, 3, 4, 5, 6, 7, 8 숫자를 각각 !, @, $, ^, &, *, (, ) 로 치환하고, 각각 user, password 쿠키값으로 저장하는 코드입니다.
두 번째 코드는 user 와 password 쿠키값을 가져오고, 위와 같이 특수문자를 숫자로 치환한 뒤 base64를 20번 디코딩 한 후 나온 결과값이 각각 admin, nimda 일 시 해결되는 문제입니다.
알고리즘은 간단하니 코드를 작성해보도록 할게요.
import base64
text = "admin"
for i in range(20):
text = base64.b64encode(text)
text.replace("1", "!")
text.replace("2", "@")
text.replace("3", "$")
text.replace("4", "^")
text.replace("5", "&")
text.replace("6", "*")
text.replace("7", "(")
text.replace("8", ")")
print(text)
text 내의 값을 20번 인코딩 후, 숫자를 특수문자로 치환하는 알고리즘입니다.
두 번째 코드의 알고리즘을 반대로 실행하면 풀 수 있습니다.
실행 시 이렇게 긴 문자열이 나오게 됩니다.
그걸 쿠키값을 편집해서 대입하면 됩니다.
짠!
'정보보안 공부 > Webhacking.kr(old)' 카테고리의 다른 글
Webhacking.kr 11번 문제풀이 (0) | 2020.05.19 |
---|---|
Webhacking.kr(old) 10번 문제풀이 (0) | 2020.05.13 |
Webhacking.kr(old) 4번 문제풀이 (0) | 2020.05.02 |
Webhacking.kr(old) 1번 문제풀이 (0) | 2020.05.02 |
Comments