[DreamHack] [web] [beginner] php7cmp4re 풀이

2024. 11. 10. 22:08Information Security 정보보안/DreamHack

728x90

배울내용 : 

dreamhack,

web hacking,

ascii,

dreamhack풀이,

php7cmp4re,

dreamhack web 풀이   

 

 

php7cmp4re   문제의 핵심은 ASCII 를 이용하면 된다

만약 ACSCII 를 이용해보고도 못풀겠으면 아래의 풀이를 이어가도좋다 

 

 

 

 

 

 

위에 ID 와 PW 같은 창이 있는데 항상여기서는 필자가 생각하기엔 기본적으로 시도해보면 좋은 3가지 방법이 있다

 

입력방법 

1.  예상되는 흔한 ID PW 입력 (ex:  admin,  admin   |    guest , guest ) 

2.  글자 수 1개 또는 엄청길게 입력 (ex: 1, 1 |  a ,a  | ' , '  | aaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaa)  

3.  특정키워드 검색  (ex : ctrl + shift + F 로 index.php 또는 예상되는 login , password 등을 검색 )

 

 

 

우선 필자는 위와 같은 모든걸 시도해 보았지만 아래의 창만 얻을수있었다.

 

 

 

결국 문제 파일을 받고 코드를 확인해보기로 했다 

 

 

 

 

 

파일에는 3개의 파일이 있는데  이중 check 라는 부분이 무언가를 확인하는것같은 제목이 보인다 

 

 

 

 

그러면 아래와 같이 php 로 작성된 코드가 보이는데 여기서 바로 input 1, 2 가 들어가있는걸 볼수있다

 

 

 

그런데 input_1 ,2 의 조건은 빈칸이 아니고 

input 1 조건

    1 . 글자수가 4자리 미만 일것

    2 . 8 작고 "7.A" 보다 작으며 그리고 "7.9" 보다 클것

input 2 조건

    1. 74 보다 작고 "74" 보다 클것 

 

 

 

 

딱보니 아스키 코드를 이용해야할것같다

 

아스키 코드를 보면 문자자료형이 7 일때는 55 인걸 알수있다 

 

 

 

그러면 다시 input1번조건을 보자


input 1 조건

    1 . 글자수가 4자리 미만 일것

    2 . 8 작고 "7.A" 보다 작으며 그리고 "7.9" 보다 클것

 

 

 

그러면 ascii 코드에 7 . 9 이걸 따로보면 되고 맨마지막에  "9" 그리고 "A" 만 비교하면된다

그러나 9 뒤에는 0 이오면 더 작아지고 A 밑에는 더이상 없다 (소문자가 ascii로는 더 높음)

그래서 ascii 를보면 특수문자들이 있는데 이걸 대신 넣어서 [       7.?         ]  이렇게 넣어 봤다

 

 

input 2 번에는 2개만 먼저 채워주고 제출했더니 아래처럼 출력이 된다

 

 

일단 출력문자가 Good try 로 1번은 맞았다는걸 암시하고 이제 2번째 인풋만 맞춰주면된다

그럼 2번째 조건을 다시 보면


input 2 조건

    1. 74 보다 작고 "74" 보다 클것 

 

여기서 함정은 하나는 따옴표가 없는 74와 있는 "74" 인데 이는 각각 다르게 표시 되게 된다

즉, 74와 74를 비교하는게 아니라 (정수)74 --> ascii 로도 74 , "74" --> ascii 로는 "7" 따로 "4" 따로 보면 된다

즉 (char) 7 은 ascii 로 55  , (char) 4 는 ascii 로 52 

 

즉 조건을 풀어서 말하면

 

 

 

 74 보다 작고 "74" 보다 클것 

  =

(DEC) 74 보다 작고 (DEC) 52 , (DEC) 55 보다 클 것  + ( 문자 2개 여야하는것) 

 

 

이 되게 된다

 

 

 

말그대로 특수문자 2개만 넣어주면 해결될것같다.

 

 

 

그러면 다시 입력창으로 돌아와서  1번째 입력과 2번째 입력값을 넣어주고 제출하게 되면

 

 

성공적으로 성공 플레그를 뛰울수있게 된다. 

 

 

 

728x90