HTML Injection - Reflected (GET)
● 테스트 1(bee-box)
→ 텍스트 출력 후 작업
● 테스트 2(bee-box)
→ 텍스트 출력 후 작업
● 결론
→ url에 입력한 first name과 last name이 그대로 출력된다(get 방식의 특징)
● 테스트 3
→ 사진 출력하기
● 테스트 4
→ cookie 출력하기
HTML Injection - Reflected (POST)
● 개요
→ <body> (실제 웹 브라우저에 표시되는 부분) 태그에 정보를 포함하고 있다
→ 따라서 URL 주소창에 서버에 전송되는 데이터 (정보)가 노출되지 않는다
● 테스트 항목
→ 일반 텍스트 입력하기
→ 벌 사진
→ cookie
→ <h1></h1>
→ low / medium / high 차이 비교
● 테스트 1
→ Kali에서 bWAPP의 스크립트 코드를 입력하고 Paros 프록시로 학인하기
● 테스트 2
→ Win10 에서 bWAPP에 스크립트 코드를 입력하고 Burp Suite 프록시로 확인하기
HTML Injection - Reflected (Current URL)
● 테스트 1
→ Win 10에서 Burp Suite으로 History로 target을 설정하고 Intercept를 키고
bWAPP에서 URL 공격을 누르고 해킹 한다
→ 그리고 RAW와 Headers를 확인한다
HTML Injection – Stored(Blog)
● 테스트 1
1. blog injection에 정보 입력
2. 누가 언제 올렸는지 확인 가능(게시판과 비슷)
3. Win 10의 Burp Suite로 확인
● 결론
→ Security Level을 Medium과 High로 하는 겨웅 엔트리 아느이 소스가 그대로 노출됨
→ bWAPP의 소스 코드에서 (Html injection Post) <form></form> 부분을 긁어 온다
→ 입력하고 submit을 하면 입력창이 나온다
→ 이것이 피싱사이트의 기본이다
iFrame Ingection : (POST방식이다)
● HTML Injection 방식
→ Reflected 방식(URL 클릭)
: 피싱 사이트 접속한 이후 개인정보 유출, 인증 안된 프로그램 설치 등
→ Stored 방식(게시물 클릭)
: 피싱사이트 접속 유도, 쿠키 정보 탈취, 악성 코드 유입, 랜섬웨어, 인증
안된 프로그램 설치 등
● 테스트 1
1. 작업 선택한다
2. 들어가서 html 코드를 확인하고 <iframe> ~ </iframe>을 복사한다
3. 상단 url 주소를 복사한다
4. 자신의 주소를 입력해서 아래와 같이 코드를 생성해서 4줄의 코드들을 주소창에 검색
5. HTML 프레임 안에 사이트가 출력된다
● 테스트 2
1. 테스트 1과 동일한 방법으로 만든 코드에서 height와 width를 0으로 설정해서 출력
2. 아무것도 나타나지 않는다
● 테스트 3
→ 팝업창 띄우기
1. popup.html 생성(/var/www/bWAPP/popup.html)
<script>alert(“CLOUD CD”)</script>
2. 테스트 1과 테스트 2에서 만든 html 코드에서 src 뒤에 localhost를 새로 생성한
popup.html로 바꾼다
Injection(인젝션) - Server-Side-Includes(SSI)
● 개요
→ 웹 브라우저를 통해 사이트에 접속할 때 URL에 출력되는 내용(*.shtml)을 확인한다
→ SSI 기능을 사용하는 사이트를 파악한 후 명령을 통해 인젝션하고 정보 등을 확인한다
● *.shtml
→ HTML 코드 전체가 아닌 일부 내용(공통 모듈)을 추가하는 기능을 가지고 있다
→ SSI를 사용하는 웹 사이트를 처리하기 위한 파일이다
→ SSI를 사용하지 않는 웹 사이트는 이 파일이 주석처리 되어있다
→ 사이트 누적 조회수 등을 처리할 때 사용된다
● 테스트 1
→ First name : samadal Last name : 12 입력
→ 주소 검색 url에 localhost검색하면 loopback(127.0.0.1)이 나오고 내 시스템의 주소인
192.168.95.128을 입력하면 그 주소가 나온다
● 테스트 2
→ /var/www/bWAPP/ssii.php 파일 74번째 줄
else
{
$line = '<p>Hello ' . $firstname . ' ' . $lastname . ',</p><p>Your IP address is:' . '</p><h1></h1>';
// Writes a new line to the file
$fp = fopen("ssii.shtml", "w");
fputs($fp, $line, 200);
fclose($fp);
header("Location: ssii.shtml");
exit;
}
→ First name :
→ Last name : 아무거나
→ 사용자의 정보가 출력된다
→ First name :
→ Last name : 아무거나
→ 아무 것도 출력되지 않는다(권한 문제)
→ /etc/passwd 와 /etc/shadow 파일의 권한 확인
Injection(인젝션) - SQL Injection(GET/Search)
● 개요
→ SQL 쿼리문의 일부로 사용되는 사용자 입력 데이터를 적절하게 검증하지
못 할 때 발생한다
→ URL 창 또는 ID, PW 입력화면에서 SQL 문에 사용되는 기호(‘,”) 및 입력을 적절하게
필터링 하지 않을 때 발생한다
● 테스트 1
→ 취약점 유무 점검(작은 따옴표(‘) 한개만 입력)
→ 오류가 발생한다
● 테스트 2
→ 1’ or 1=1
● 테스트 3
→ 1’ or 1=1#
● 테스트 4
→ ' union select all 1#
● 테스트 5
→ ' union select all 1,2,3,4,5,6,7#
● 테스트 6. 인젝션 추가 및 결과 출력
→ union
: Select 명령에서 2개 이상의 Select 문을 실행하기 위해 사용
: 필드 개수를 정확히 입력해야 SQL Injection 실행한 후에 정보확인 가능하다
→ ' union select all 1,database(),user(),system_user(),@@version,6,7#
: 데이터 베이스 이름
: 사용자 아이디
: 관리자 권한이 부여된 사용자 아이디
: SQL 버전
● 테스트 7. information_schema(테이블들의 데이터 베이스 정보)
→ bWAPP의 데이터 베이스를 확인한다
: 굉장히 위험하다 데이터 베이스안에서 확인했던 내용이 그대로 출력된다