오전 시간은 어제 했던 실습 해답을 해주는 시간
[ 실습 1 ] 회원의 평균 나이를 구하라.
- 출력 결과는 "회원의 평균 나이: ??" 형식으로 출력한다.
declare @age int, @total int, @cnt int
set @cnt=0
set @total=0
declare cur cursor for select age from member
open cur
fetch next from cur into @age
while @@fetch_status=0
begin
set @total = @total + @age
set @cnt = @cnt + 1
fetch next from cur into @age
end
select @total / @cnt
close cur
deallocate cur
회원의 평균은 나이는 다 더하고 나누는 형식으로 할 것이다.
누적하는 것은 total이라는 변수로 주었다.
나누는 값으로 cnt값을 주었다.
이런식으로 작성해주었고 실습에서 원하는 조건으로 출력하기 위해선 사진처럼 convert를 사용해서 print로 작성해주면 된다.
[ 실습 2 ] 모든 회원의 nickname을 Hacker로 변경하라.
declare @nick varchar(10)
declare cur cursor for select nickname from member
open cur
fetch next from cur into @nick
while @@fetch_status=0
begin
update member
set nickname='hacker'
where nickname=@nick
fetch next from cur into @nick
end
close cur
select nickname from member
deallocate cur
while문 안에 fetch next from cur into @nick을 넣어서 하나를 실행한 다음 다음 껄 실행해서 보여주는 식의 쿼리를 짰다.
사실 모두 동일한 값을 주는 것이라 nick이라 동일한 값으로 주고싶다면 그냥 where 조건절과 변수를 딱히 쓸 필요도 없다. 변수와 조건절을 지우고 실행해봐도 똑같이 실행이 되는걸 확인할 수 있음
[ 실습 3 ] Webhack DATABASE의 모든 TABLE의 데이터를 변조하라.
- SQL문을 실행하려면 exec()를 활용
- Data type을 고려하여 원하는 문자열로 변조
- VMware의 Snapshot 기능을 적극 활용
우리는 모든 TABLE의 정보를 알고있어야하기 때문에 메타데이터를 적절히 이용해야함
바꾸고 싶다면 update구문을 사용해야한다.
table_name이랑 column_name을 확인하고 뒤쪽에 type또한 확인을 해주어야함.
declare @t varchar(20), @c varchar(20)
declare cur cursor for select table_name, column_name from information_schema.columns where data_type='%char' or data_type like 'text'
open cur
fetch next from cur into @t, @c
while @@fetch_status=0
begin
exec('update '+@t+' set '+@c+'=''hack''')
fetch next from cur into @t, @c
end
close cur
deallocate cur
테이블저장하는 @t 컬럼저장하는 @c라고 변수를 저장했다.
다 바꾸는거라 where의 조건은 없어도 될 것
set은 변수를 저장하는 것 우리는 그 목적으로 안쓸것이고 이것을 실행하기 위해선 붙여서 하나로 표현해준다 exec()를 사용해서 exec를 사용할 땐 인수로 넘어갈 때 ''로 감싸진 상태로 넘어가야한다. 이렇게 되면 ''로 신텍스 에러가 생길꺼기 때문에 문자열별로 따로따로 나눠서 진행할 것
='hack' 이런식으로 하던걸 '='hack''이런식으로 한건데 이러면 신텍스 에러가 일어나고 인식을 못하기 때문에 ''을 하나씩 더 붙여주어서 인식을 하게 만들고 '=''hack'''이런식으로 작성했다.
분위기를 바꿔서 vmware는 종료를 해주고 GNS를 열어준다.
공유폴더에 이미지 파일 두개를 다운받아준다.
IPS를 많이 사용하면 네트워크 과부화 발생하기 때문에 마냥 좋은건 아님
IDS(Intrusion Detection System) 침입탐지시스템
IPS(Intrusion Prevention System) 침입차단시스템
Snort(Sniffer and more)
security onion을 네트워크를 연결시켜주기 위해서 GNS와 연결해줌 켜주고
이런식으로 VM5번과 VM6번 두개를 연결시켜준다 하나는 미러링을 해주고 하나는 통신용을 위해서 두개를 연결시켜줌
GNS를 위해서 Network Adapter를 여분으로 5번6번7번 으로 여러개 생성해둔다.
스위치에서도 5번6번을 사용중임 각각 5번 6번은 50번과 60번을 줌
사진엔 저렇게 보이지만 다시 설정을 해서 대역대는 각각 10번대역으로 사용한다. Clint는 10.10.10.10이고 server는 10.10.10.20로 하고 IDS는 각각 50과 60번으로 주었다.
vmware에서 security onion을 설정해서 이미지 넣고 실행해줌
Security onion에서 바탕화면에 있는 securityOnion을 깔아주고 이거 이름은 mjh으로 해주고 비밀번호는 qwe123으로 설정해줌
다 깔고 다시시작 했을 때 mjh로 로그인하고 아까 설정했던 비밀번호를 qwe123로 입력해서 와줌
sudo -i로 들어와서 로그인을 해줌 아까 생성한 로그인 아이디로 들어옴
화면이 너무 불편하기 때문에 tools를 설치해줘야함 vmtools를 tmp에 복사 붙여넣어주고 tar zvxf 해주고 탭 해줘서 Vm tools 압축을 풀어줌.
압축을 풀어주고 엔터로 대부분의 질문을 넘어가고 정상으로 된다면 reboot을 사용해서 리붓을 해준다. 리붓을 해주고 아까 설정한 ID와 PW로 로그인하게 되면
이런식으로 편안한 화면을 볼 수 있다.
'학원' 카테고리의 다른 글
2023/08/11 UTM (0) | 2023.08.11 |
---|---|
2023/08/10 Snort (0) | 2023.08.10 |
2023/08/08 커서 (0) | 2023.08.08 |
2023/08/07 T-SQL (0) | 2023.08.07 |
2023/08/04 프로시저 (0) | 2023.08.04 |