반응형

문제를 보면 다음과 같다.

 

 

처음에 Start라는 버튼이 있다.

 

눌러보면 다음과 같이 페이지가 변한다.

 

 

먼저 자신의 ip가 나오며 패스워드를 입력하는 폼이 있다.

 

여기서 "?"라는 버튼이 있는데 눌러보면 alert되는데 alert된 값을 보면 "1234"가 있다.

 

1234를 입력해보자.

 

 

당연히 1234가 패스워드가 아니다.

 

여기서 봐야할것은 처음에는 1/100이 였다가 1234를 입력한 후에는 2/100이 됬다.

 

위의 결과를 보고 다음과 같은 가정을 세워보면

 

2는 시도한 횟수를 의미하는것이고 100은 100번안에 우리가 원하는 패스워드가 있다는 가정이다.

 

다시한번 "?"를 클릭하여 나오는 값을 입력해보자.

 

 

위의 alert된 값을 입력하니 역시 시도횟수가 1이 증가한 3/100이 되었다.

 

이렇게 수동으로 하면 언젠가는 우리가 원하는 패스워드가 나올것이다.

 

하지만 출제자의 의도는 수동이 아닌 코드를 작성하여 위의 행위를 코드로 하고자 문제를 출제하였으니

 

코드를 작성해보자.

 

import requests

for i in range(1,시도 횟수):
    print("시도 횟수: "+str(i))
    get_pw = ("...../index.php")
    html = requests.get(get_pw).text
    if "onclick" in html:
        cur_pw = (html[html.find("onclick=alert('")+15:html.find("')>")])
        send_pw = ("...../index.php?pw="+cur_pw)
        requests.get(send_pw)
    else:
        break

 

코드 설명은 따로 하지 않겠다.

 

 

반응형

'웹 해킹 > Coding' 카테고리의 다른 글

Coding 3번.  (0) 2020.12.13
Coding 1번.  (0) 2020.12.12
반응형

이번에는 Coding 문제이다.

 

문제를 보자.

 

패스워드를 입력하는 곳이있다.

 

아무값이나 값을 입력해보자

 

당연히 password가 아니기 때문에 "Wrong password"라는 문구를 볼 수 있다.

 

소스 코드를보자.

 

 

뭐 특별한 것이없다.

 

하지만 하나 눈에 보이는것이 있다.

 

바로 "brute_force_me"라는 문구를 볼 수 있다.

 

그 뒤로 바로 sizemaxlength가 나와있다.

 

최대 길이는 4이며 사이즈는 4라는 의미이다.

 

따라서 0001에서부터 9999까지 대입을 해봐야하는것이다.

 

이것이 바로 brute force 공격기법이다.

 

brute force 공격 기법은 조합 가능한 모든 문자열을 순차적으로 하나씩 모두 대입해 보는 것이다.

 

그 야말로 무식하게 암호가 일치할때 까지 모든 경우의 수를 조합해 대입을 시도한다.

 

이론상으론 brute force 공격에 충분한 시간만 주어진다면 (모든 문자에 대한 조합을 시도해 볼 수 있기 때문에) 언젠가는 공격자가 원하는 비밀번호를 맞히게 될 것이다.

 

다만 현실적으로는 암호의 길이와 복잡도의 증가에 따라 공격에 걸리는 시간이 기하급수적으로 늘어나므로 이론상으로는 가능하나 현실적으로는 성공한다고 보기 어렵다.

 

따라서 이것을 손으로 0001~9999까지 대입하면된다.

 

하지만 문제 카테고리가 Coding이기 때문에 code로 brute force을 할것이다.

 

코드는 다음과 같다.

 

import requests

for i in range(1,10000):
    url=(".....?brute_force_me=" + str("{0:04d}".format(i)))
    res = requests.get(url)
    if "Wrong password" in res.text:
        pass
    else:
        print("Password: "+str("{0:04d}".format(i)))
        break

 

코드 설명은 따로 하지 않는다.

 

이렇게하면 우리가 원하는 패스워드를 얻을 수 있다.

 

 

반응형

'웹 해킹 > Coding' 카테고리의 다른 글

Coding 3번.  (0) 2020.12.13
Coding 2번.  (0) 2020.12.13
반응형

하 SQL이 너무 어렵다.

 

그래서 막연하게 쿼리를 짜서 날리는것 보다 눈으로 확인하면서 어떻게 넘어가는지 확인을 하고자 

 

Apache와 PHP를 연동하기로 마음먹었다.

 

근데 Apache버전 8를 설치하는데 자꾸 1067 에러로 실패 하여 Apache 버전 7을 설치했다.

 

다음에도 설치할 일이 생길것 같아 정리를 한다.

 

먼저 윈도우용 PHP와 Apache를 설치해준다. (필요한 분은 댓글로 요청하면 링크를 드리겠습니다.)

 

또한 64비트 윈도우 운영체제이다.

 

1. 먼저 설치는 편하게 C 드라이브 밑에 바로 해준다.

- C:\Apache24

 

2. httpd.conf 설정 파일을 수정해준다.

- httpd.conf 설정 파일에서 ServerName을 자신의 서버 IP 주소에 맞게 설정 ex) ServerName localhost

- httpd.conf 파일은 C:\Apache24\bin에 있다.

 

3. 이제 명령 프롬프트(CMD)를 꼭 관리자 권한으로 실행하여 아파치 서버를 설치 및 등록해준다.

- c:\Apache24\bin>httpd.exe -k install

 

4. services.msc를 실행하여 아파치를 실행 해준다.

- Apache2.4를 클릭하여 시작을 눌러준다.

- 이렇게 하면 아파치 설정과 실행은 끝이다.

- 이제 PHP를 설정해주자.

 

5. 위에서 받은 php도 C 드라이브 바로 밑에 설치해준다.

- C:\PHP

 

6. 압축을 푼 php 폴더에 php.ini-development 파일이 있다 이것을 메모장이나 edit로 열어주자.

- 그런 다음 이렇게 변경해준다.

 

7. 그런 다음 위의 php.ini-development 파일 복사하여  C:\Windows에 복사해준다.

- 굳이  C:\Windows가 아니라 다른곳이어도 상관은 없다.

- 복사한 php.ini-development 파일 이름을 php.ini로 고쳐준다.

 

8. 이제 php.ini과 Apache 서버를 서로 연동시켜준다.

- Apache가 설치 된 폴더에서 httpd.conf 파일을 열어 제일 마지막에 다음과 입력하고 index.php도 추가해준다.

- 그런 다음 c:\Apache24\bin>httpd.exe -k restart 입력

9. 브라우저에서 http://localhost/를 입력

- 아래 처럼나오면 성공.

 

 

반응형

'기타' 카테고리의 다른 글

[Anaconda] Frida 설치  (0) 2022.01.23
[Java] 자바 JR 설치  (0) 2021.11.06
[Web-proxy] 피들러(Fiddler) 설치 및 사용법  (0) 2021.11.06
[Python] 파이참(Pycharm) 설치  (0) 2021.11.06
[Python] 아나콘다(Anaconda) 설치  (0) 2021.01.15

+ Recent posts