12/14
bee box
kali
tomcat
run.bat 실행 후 PID확인 > 작업관리자 상세보기에서 PID 작업끝내기
*netstat -ano
burp suite 를 이용 해서 수량과 단가 조절
>> 입력 값 검증에 대한 형식이나 내용 검증을 필요로 해야 함.
서버 처리 예측하는 쿼리문 작성
- select * from employees where id = 112 and pw = 'a''
- 에러 로깅 메시지 발생
> 오류 유발 입력값이 그대로 전달 되어 사용
proxy intercept로 로그인 성공
>> 화면에서만 글자 제한
*서버또한 글자 제한의 검증이 필요, 입력 값 그대로 쿼리문 생성, 실행에 사용하기 때문에 발생하는 문제
SQL Injection 취약점
메타 문자
http:// www. example.com/path/file?name=hong&age=23
- ? : 파라미터의 처음
- = : 파라미터 이름과 값을 구분
- & : 파라미터와 파라미터 구분
select from users where id = 'hong' and pw = '1234'
- 'hong' : 문자열 데이터 시작과 끝
Band&Luice 문자열을 보낼 때 문제
http://www.example.com/path/file?company_name=Bandi&Luice
- 뒤에 &는 파라미터와 파라미터를 나타내는 메타데이터로 해석
>>>>메타데이터의 의미를 제거하고 문자 자체로 사용해야 함 (이스케이프)
- 인코딩
- 특정 기능에서 정해진 방법으로 > = 'hong's junior 2' > = 'hong''s junior 2' , = 'hong\'s junior 2'
- 이스케이프를 의미하는 의미 문자를 이용해서 처리 > =Bandi &26 Luice
* &26 url에서 특수기호를 사용할 때 URL 인코딩 방법
WEB goat String SQl Injection
취약점: SQL Injection
테스트
소스코드를 봤을 때, maxlength 입력 제한을 볼 수 없음.
긴 문자열을 넣었을 때, No results matched. Try Again 문구 출력 확인
Smith 유효한 값
Smith' or 'a'='a SQL쿼리 입력 시 사용자 정보 불러옴
결과
SQL 쿼리로 사용자 정보 접근 가능