[그림 1]

table 명을 알아내야 문제를 풀수 있는거 같다. 예전에 풀어본 CTF 문제에서 사용 했던 procedure analyse()함수를 사용하면 될거 같다.

 

?val=1%09procedure%09analyse();

[그림 2]

?answer=chall53_755fdeb36d873dfdeb2b34487d50a805

[그림 3]

'Challenge > webhacking.kr' 카테고리의 다른 글

Webhacking 56번 문제 풀이  (0) 2020.02.20
Webhacking 54번 문제 풀이  (0) 2020.02.20
Webhacking 51번 문제 풀이  (0) 2020.02.19
Webhacking 50번 문제 풀이  (0) 2020.02.19
Webhacking 49번 문제 풀이  (0) 2020.02.18

[그림 1]

소스부터 보자

[그림 2]

또 sql이다. 이번에는 post방을 이용하고 id,및 pw를 받아서 쿼리문에 넘겨준다.

 

pw -> md5 암호화 -> 16자리 binary과정을 거친다.(md5 취약점)

 

이 binary값에 '='d이 포함 될 수 있다.

거짓 = 거짓 은 참이다 조건을 이용하여 푸는 문제인 것 같다.

이를 이용해 pw를 찾아냈다.

 

id=admin

pw=

 

[그림 1]

클~ 

 

 

'Challenge > webhacking.kr' 카테고리의 다른 글

Webhacking 54번 문제 풀이  (0) 2020.02.20
Webhacking 53번 문제 풀이  (0) 2020.02.19
Webhacking 50번 문제 풀이  (0) 2020.02.19
Webhacking 49번 문제 풀이  (0) 2020.02.18
Webhacking 48번 문제 풀이  (0) 2020.02.18

[그림 1]

소스코드를 확인하자

[그림 2]

45번 문제와 같은 취약점을 이용하는 문제인거 같다. mb_convert_encoding 함수의 취약점을 이용해 '를 사용 할수 있다.

음 그리고 lv=3이면 문제가 풀린다. 문자열 필터링을 잘 피해서 구문을 만들어보면 될거 같다.

 

?id=guest%fe%27%09or%09lv%09like%093--%09&pw=guest

 

이구문을 이용했을때 lv 1과 2는 문제 없이 출력이 되었으나 3이 제대로 출력되지 않았다.

[그림 3]

고민끝에 lv = 3이 존재하지 않을 수도 있다 라는 결론에 도달했다.

 

union을 사용하고자 하였으나 id에서는 union을 필터링 한다.

id부분에서 union을 우회하려 하였으나 생각했던 방법도 필터링이 되고 있었다. union을 pw에서 사용해야 될것 같다.

md5부분이 신경쓰여서 그냥 이부분을 씹을 방법을 모색하였다. 주석을 이용하여 씹도록 하였다.

 

?id=%fe%27/*&pw=*/%0aunion%0aselect%0a3%23

이 구문을 쿼리문에 넣어보면

 

select lv from chall50 where id=''/*' and pw=md5('*/ union select 3 #')

 

select lv from chall50 where id=' ' union select 3

이렇게 된다.

[그림 4]

'Challenge > webhacking.kr' 카테고리의 다른 글

Webhacking 53번 문제 풀이  (0) 2020.02.19
Webhacking 51번 문제 풀이  (0) 2020.02.19
Webhacking 49번 문제 풀이  (0) 2020.02.18
Webhacking 48번 문제 풀이  (0) 2020.02.18
Webhacking 47번 문제 풀이  (0) 2020.02.17

[그림 1]

level 숫자를 달리 하였더니 숫자별로 뭔가 값을 불러 오는것을 확인 했다 소스 코드를 확인하자

[그림 2]

음 불러온 값이 admin이면 해결 되는 문제인거 같다.

preg_match 문자열 비교 함수를 잘 우회해서 해결하면 될거 같다. 몇번의 no hack 표시를 본후 구문을 완성 하였다.

?lv=99%0a%7C%7C%0aid%0alike%0a0x61646d696e

사전에 99는 존재하지 않는 것을 확인하여 lv=99라는 부분은 거짓을 만들어 뒤에 id=admin을 불러오도록 하였다.

char(97,100,109,105,110)을 사용하지 않은 이유는 필터링에 ,(콤마)가 들어어 no hack이 뿜어져 나왔다.

[그림 3]

'Challenge > webhacking.kr' 카테고리의 다른 글

Webhacking 51번 문제 풀이  (0) 2020.02.19
Webhacking 50번 문제 풀이  (0) 2020.02.19
Webhacking 48번 문제 풀이  (0) 2020.02.18
Webhacking 47번 문제 풀이  (0) 2020.02.17
Webhacking 46번 문제 풀이  (0) 2020.02.17

[그림 1]

일단 파일을 올려보았다.

[그림 2]

[uploadfile]과 [Delete]가 있는데 전자는 내가올린 파일을 다운하고  후자는 삭제 하는 일을 수행한다.

무슨 변화가 있나 싶어 test파일을 다운받아서 봐보았지만 안에 플래그가 적혀 있거나 그러지는 않았다.

[그림 3]
[그림 4]

웹쉘 파일 이름에 command를 포함시켜 업로드 하였고 해당 파일을 삭제 하였다. 

'Challenge > webhacking.kr' 카테고리의 다른 글

Webhacking 50번 문제 풀이  (0) 2020.02.19
Webhacking 49번 문제 풀이  (0) 2020.02.18
Webhacking 47번 문제 풀이  (0) 2020.02.17
Webhacking 46번 문제 풀이  (0) 2020.02.17
Webhacking 45번 문제 풀이  (0) 2020.02.17

[그림 1]

보내봤다.

 

[그림 2]

Mail이 전송되었다는데 나는 얘한테 주소를 알려준적이 없다. 혹시나 해서 가입할때 썼던 이메일로 들어가 보았지만 역시나 없었다.

 

Mail 취약점에 대해 알아보았다.

Text를 사용하여 Cc를 수행하면  참조인에게도 메일이 가는 것을 확인했다. 

[그림 3]

input태그를 textarea로 바꾸어 사용하였다. (Flag뒤에 %0D%0A를 사용해도 된다. CRLF)

 

[그림 4]

'Challenge > webhacking.kr' 카테고리의 다른 글

Webhacking 49번 문제 풀이  (0) 2020.02.18
Webhacking 48번 문제 풀이  (0) 2020.02.18
Webhacking 46번 문제 풀이  (0) 2020.02.17
Webhacking 45번 문제 풀이  (0) 2020.02.17
Webhacking 44번 문제 풀이  (0) 2020.02.14

+ Recent posts