어제에 이어서 CSRF를 진행 해보도록 하겠습니다
어제 했던 공격에서 GET 방식을 이용해서
192.168.12.186 서버의 관리자 권한을 취득해보도록 하겠습니다.
img 태그를 써서 url을 적어보겠습니다
꼭 이미지 url일 필요는 없습니다
이렇게 wireshark를 통해서 보시면 제가 요청한 test.html이 뿐만 아니라 나중에 img 태그에 걸린 url을 가져와야하기 때문에 자동으로 요청을 보내지는걸 알 수 있습니다.
그 방식을 통해서 CSRF GET방식으로 관리자 권한을 획득 해보도록 하겠습니다
echo로 회원가입을 해서 일반 사용자인 상태입니다
이렇게 GET방식으로 레벨과 관리자 권한을 바꾸는 요청을 적어놓고 게시글을 작성합니다
저 요청은 관리자가 보내야 서버에서 인식하므로 관리자가 저 게시글을 클릭하도록 해야합니다
이렇게 관리자가 게시글을 클릭을 하게 되면 변합니다
이렇게 잘 레벨이 바뀐걸 알수있습니다.
2. 서버측 언어를 이용한 취약점
-서버에서 실행
- 서버를 타겟으로 하는 공격 유형
1).php 파일 업로드 취약점
1. php 파일을 서버에 업로드 가능
2. 웹 브라우저를 통해서 접근이 가능
- 객체에 대한 직접 접근
이렇게 차단 되는걸 볼 수 있습니다
* 필터링 우회 방법
1. 왜 차단되고 있는가?
- write_ok.php
- 파일의 확장자가 .php인 경우라면 차단
2. 꼭 확장자가 .php 이어야 하는가?
- 웹 서버가 .php 확장자를 가지고 php파일을 식별하기 때문에 그래야합니다
- php는 리눅스에서는 확장자를 가리지 않습니다
3. 왜 확장자는 .php로 되어 있는가?
- /etc/httpd/conf.d/php.conf
AddHandler php5-script .php
AddType text/html .php
이걸 우회하도록합니다
txt파일도 되게 해보도록 하겠습니다
아까 php파일을 txt파일로 바꿉니다
다운로드 버튼을 클릭을 하면 php파일이 잘 실행되는걸 알수 있습니다
이 설정 파일을 어떻게 변조 시키는지 알아보도록하겠습니다
그전에 아파치 설정 파악하기
! 아파치 웹 서버 설정의 이해
1. /etc/httpd/conf/httpd.conf
1). 아파치 웹 인증
#>vi /etc/httpd/conf/httpd.conf
AuthType Basic : 인증타입
AuthName "Basic Auth test" :인증이름
AuthUserFile /var/www/html/.htpasswd : 실제 적용할 파일경로
Require vaild-user : 인증한 사용자만 사용할 수 있음
설정하고 다시 키면 저렇게 이제 인증하도록 물어봅니다
인증 사용자와 비밀번호는 .htpasswd 에 적어놓으면 됩니다
새로만들떄는 -c 옵션을 쓰면 됩니다
잘 들어가지는걸 볼 수 있습니다
/var/www/html/zboard 폴더만 인증 여부를 물어보도록 설정을 바꿔보도록 하겠습니다
이렇게 설정을 바꾸고 httpd를 재시작하면
/var/www/html폴더에 있는 index.php는 인증없이 잘들어가집니다.
하지만 /var/www/html/zboard 아래에 있는 admin.php는 인증절차를 밟아야 합니다
로그를 보시면 Authorization이 있음을 볼 수 있습니다
.htaccess
- 설정파일(로컬 설정 파일)
- 파일이 존재하는 디렉터리와 그 하위 디렉터리에 대해서만 설정이 적용
- service httpd restart를 안해도 바로 적용됩니다
All로 바꿔줍니다
이걸 <Directory "/var/www/html/zboard">
그럼 이제 /var/www/html에 .htaccess가 있으므로 인증 절차를 밟는걸 알 수있습니다.
즉, 설정을 적용하고 싶은 디렉터리에 해당 파일을 만들어주기만 하면됩니다
이걸 가지고 아까 php파일을 못 올렸던 방식을 우회하도록 하겠습니다.
지금은 txt파일 그대로 나오는걸 알 수 있습니다.
AddHandler php5-script .php .txt
AddType text/html .php .txt
이코드를 .htaccess에 넣고 attack.txt 파일과 같이 업로드를 해보도록하겠습니다
php 코드가 잘 실행 되었음을 볼 수 있습니다
서버단에서 AllowOverride 옵션이 꺼져있으면 이 우회방법을 쓸 수 없습니다
'Security > Web' 카테고리의 다른 글
[WEB SECURITY]17. RIF 취약점 2 / SQL injection 1 (0) | 2017.09.01 |
---|---|
[WEB SECURITY]16. 원격 쉘 / RIF 취약점 (0) | 2017.08.31 |
[WEB SECURITY]14. XSS 취약점 2 / CSRF 1 (0) | 2017.08.29 |
[WEB SECURITY]13. 제로보드/ XSS 취약점 (0) | 2017.08.28 |
[WEB SECURITY]11. 게시판 만들기 3 (0) | 2017.08.24 |