DINGA DINGA
article thumbnail
[Natas] Level 18 → Level 19
WEB/Natas 2021. 6. 25. 00:24

http://natas19.natas.labs.overthewire.org/index.php natas19/4IwIrekcuZlA9OsjOkoUtwU6lhokCPYs로 로그인 코드는 이전과 같지만 세션아이디가 더 이상 sequential하지 않다고 한다. 쿠키 값을 삭제해가며 여러 번 로그인해서 세션값을 받아왔다. 첫 번째 시도(admin으로 로그인): 3136372d61646d696e 두 번째 시도(bdmin): 3439302d62646d696e 세 번째 시도(cdmin): 32322d63646d696e 2d63646d696e가 공통으로 들어가고, 앞에는 30~39가 1~3개 나열된 것을 확인할 수 있다. 찾아낸 패턴을 근거로 자동화 프로그램을 작성했다. import socket num = {'0':'..

article thumbnail
[Natas] Level 17 → Level 18
WEB/Natas 2021. 6. 24. 23:43

http://natas18.natas.labs.overthewire.org/index.php natas18/xvKIqDjy4OPv7wCRgDlmj0pFsCsDjhdP로 로그인 소스코드를 살펴보자. username과 password를 전송했을 때 생성되는 세션아이디가 admin 값과 같으면 패스워드를 알아낼 수 있다. 우선 자동화 프로그램으로 세션아이디를 1부터 순서대로 640번 보내어 "You are an admin"이라는 문구가 출력되면 response를 출력하게 했다. import socket for idx in range(1,641): sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.connect(("176.9.9.172",80)) hea..

article thumbnail
[Natas] Level 16 → Level 17
WEB/Natas 2021. 6. 24. 23:11

http://natas17.natas.labs.overthewire.org/index.php natas17/8Ps3H0GWbn5rd9S7GmAdgQNdkhPkq9cw 로 로그인 소스코드를 살펴보자. 바로 전 단계와 비슷하지만, echo를 막아두었기 때문에 어떤 username이 존재하는지 알 수 없다. time based sql injection를 활용해, 쿼리문이 정상적으로 작동하면 sleep이 걸리게 해서 패스워드를 찾아내야 할 것 같다. 파이썬으로 작성한 자동화 코드는 아래와 같다. import socket import time for idx in range(1,33): for ch in range(48,123): if 58

article thumbnail
[Natas] Level 15 → Level 16
WEB/Natas 2021. 6. 24. 22:35

http://natas16.natas.labs.overthewire.org/index.php natas16/WaIHEacj63wnNIBROHeqi3p9t0m5nhmh 로 로그인 소스코드를 살펴보자. 전 단계들과 마찬가지로 필터링이 걸려 있다. 이미 이전 단계들을 통해 natas17의 패스워드가 /etc/natas_webpass/natas17 에 있다는 것을 알고 있으니, grep 정규표현식 ^을 이용해 패스워드를 알아낼 수 있을 것이다. $(grep ^a.* /etc/natas_webpass/natas17)test a부분에 0부터 순서대로 대입해보았다. 위와 같이 뜨다가, a에 8을 대입하자 아무것도 뜨지 않았다. 즉, 첫번째 글자가 8이라는 것을 알아냈다. 이를 이용해 파이썬으로 자동화 코드를 작성했다..

728x90