---------------------웹 쉘 관련 -------------------------
* 로봇의 제한
1. 로봇 배제 표준 규약은 '권고안'이기 때문에 '모든' 검색 로봇이 robots.txt를 따르는 것은 아니다.
2. 로봇의 제한을 위한 방법은 두 가지로, robots.txt를 이용하는 방법과 <META> 태그를 이용하는 방법이 있다.
* 대부분 POST 메소드를 이용하여 시스템 명령어나 코드를 실행
- because 아파치의 로그 파일은 POST 전송의 데이터를 기록하지 않기 때문
* 웹 쉘을 차단하기 위해 문자열 필터링 방식으로 필터링하면 우회 방법이 생길 수 있다
-> php.ini의 disable_functions 옵션을 사용해 함수를 사용하지 못하도록 비활성화시키는 것이 좋다.
* 가장 짧은 웹 쉘
- PHP에서 시스템 코드를 실행할 수 있는 가장 짧은 웹 쉘은 "<?`=$_GET[c]`;?>" 이다.
※ 파일 업로드 우회 기법
1. php.kr 우회 기법
- 아파치의 AddLanguage 옵션에 의해 발생하는 것
- 파일명이 vuln.php.kr일 경우에도 PHP 파일이 실행됨
- 이는 확장자가 php가 아니므로 필터링을 우회할 수 있다.
2. .htaccess 업로드 취약점
- 아파치의 설정 파일인 .htaccess를 업로드하여 여러 아파치 옵션을 변경
- Addtype과 같은 옵션을 통해 txt, jpg 등 원하는 확장자를 PHP 코드로 실행 가능
3. 환경 취약점
- 윈도우 환경에서는 파일 업로드 시 파일명에 콜론(:)을 붙일 경우 그 뒤에 문자열은 삭제되어 업로드 된다.
- 예를 들어 abc.php:.jpg 파일을 업로드할 경우 jpg의 확장자를 가진 파일이 업로드되는 것이 아니라 abc.php 파일이 업로드 된다.
※ 파일 업로드 방어 기법
1. "php_value engine off" 내용의 .htaccess 파일을 업로드 폴더에 생성
-> php 파일들이 업로드 되어도 실행되지 않음!
2. .htaccess 파일을 사용자가 업로드하지 못하도록 필터링
3. 데이터베이스와 연동해 download.php?fileno=3 과 같은 방식으로 파일을 다운로드시켜 파일의 경로를 알 수 업게 하는 방법
4. 모든 확장자를 랜덤하게 저장하는 방법 등
※ XSS와 CSRF의 차이
1. XSS(cross side script) = 페이지에 악성 script를 삽입하여 사용자들의 쿠키나 정보를 탈취
2. CSRF(Cross-site request forgery) = 사용자의 의지와 무관하게 사용자의 요청을 변조하여 해당 사용자의 권한으로 악성 공격을 수행하는 것
정리 = XSS는 공격대상이 client이고 CSRF는 공격대상이 Web server이다.
-----------------------------
* 웹 언어에 따라 사용하는 DBMS를 추측할 수 있다.
웹 언어 |
DBMS |
공통 특징 |
PHP |
MySQL |
오픈소스 |
JSP |
Oracle |
오라클 사의 제품 |
ASP |
MS-SQL |
마이크로소프트 사의 제품 |
* 간단한 SQL 문
- SELECT { 칼럼 } FROM { 테이블 } WHERE { 조건 }
- 로그인 : SELECT idx FROM member WHERE id='입력아이디' and password='입력패스워드'
- 회원가입 : INSERT into member(id, password, name) value('입력아이디', '입력패스워드', '입력이름');
- 회원정보 수정 : UPDATE member SET password='새로운 패스워드' where id='hellsonic'
- 회원 탈퇴 : DELETE from member WHERE id='hellsonic'
* MySQL의 주석
1. #Comments
2. /**COmments**/
3. -- Comments
'Hacking > Web' 카테고리의 다른 글
addslashes(), mysql_real_escape_string() 우회 (9) | 2017.02.01 |
---|---|
A1-injection (0) | 2017.02.01 |
구글 고급 연산자 (0) | 2017.01.08 |
Burp Suite HTTPS에서도 사용하기 (0) | 2017.01.07 |
16.11.20 공부 (0) | 2016.11.20 |