[그림 1]

readme를 눌러보면

[그림 2]

hi~를 눌러보면

[그림 3]

search의 용도를 찾아보려 이것 저것 시도해 보았다.

제목을 입력하면 아무것도 안나오고 hi,  flag를 입력하자 readme가 나왔다.

이걸 어떻게 할까 한참 고민하고 search로 여러 방법을 수행해보다가 자릿수와 관련이 있다는것을 알았다.

h, he, hel 이런식으로 넣어주니 guest가 나왔다.

flag의 경우 44자 일때까지 결과 값이 나왔다.

 

이걸 코드로 작성해서 한글자 한글자 따와야 될것 같다.

 

코드를 작성해서 돌려보면

 

FLAG_HIMIKO_TOGA_IS_CUTE_DONT_YOU_THINK_SO? 라는 flag가 나온다.

 

[그림 5]

이 문제는 기존 blind sql 풀때 코드 짰었는데 그게 도움이 된것 같다.

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

Webhacking 59번 문제 풀이  (0) 2020.02.22
Webhacking 58번 문제 풀이  (0) 2020.02.20
Webhacking 54번 문제 풀이  (0) 2020.02.20
Webhacking 53번 문제 풀이  (0) 2020.02.19
Webhacking 51번 문제 풀이  (0) 2020.02.19

[그림 1]

자기맘대로 혼자 FLAG{~~~~~~~~~}를 보여준다.

[그림 2]

스크립트로 되어 있으니 스크립트를 짜서 받아봐도 되고 방법은 여러가지다.

1. burp suite를 이용하여 한글자 한글자 넘겨주며 확인해보기

2. F12 네트워크 response 확인

 

FLAG{a7981201c48d0ece288afd01ca43c55b}

[그림 3]

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

Webhacking 58번 문제 풀이  (0) 2020.02.20
Webhacking 56번 문제 풀이  (0) 2020.02.20
Webhacking 53번 문제 풀이  (0) 2020.02.19
Webhacking 51번 문제 풀이  (0) 2020.02.19
Webhacking 50번 문제 풀이  (0) 2020.02.19

커맨드 인젝션이란 웹 요청에 시스템 명령어를 삽입 하여 실행 하는 공격이다.

OWASP TOP10에도 속할 정도로 위험한 취약점에 해당한다.

 

OWASP TOP10

https://www.owasp.org/images/b/bd/OWASP_Top_10-2017-ko.pdf

 

웹 내부에서 시스템 명령어를 실행하는 경우 입력값을 제대로 검사하지 않는다면 공격자 마음대로 시스템 명령어를 실행 할 수 있게 된다. 이는 웹 개발자가 공격자를 위해 웹쉘을 제공하는 거나 다름이 없다.

 

[그림 1]

정상적으로 동작하는 서버를 대상으로 공격자가 ;cat /etc/passwd를 요청하는데 이는 ping IP;cat /etc/passwd 형식으로 수행이 된다.

 

대응방법

Command Injection 공격은 취약한 함수를 사용함에 따라 발생한다.

취약한 함수로는

perl  :  open(), sysopen(), system(), etc....

php :  exec(), system(), popen(), include(), eval(), preg_replace(), etc...

등이 있다.

 

또한 |, &, ; 와같은 멀티라인을 지원하는 특수문자는 검사 해주는 것이 중요하다.

 

 

'Basic Concepts > Web' 카테고리의 다른 글

생각날때마다 끄적이는 웹 공격 대응방법  (0) 2020.03.05
XSS (Cross Site Script)  (0) 2020.02.26
meta 태그(meta tag)  (0) 2020.02.25
CSRF(Cross-Site Request Forgery)  (0) 2020.02.25
브루트 포스(Brute Force)  (0) 2020.02.18

[그림 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

+ Recent posts