SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Web vulnerability seminar
from make to exploit
Let me introduce my self
$ https://www.facebook.com/Izayoi49ya
Contents
$ PHP + Source code auditing
$ DB & hash
$ XSS & CSRF
$ Something Injection
$ SQL Injection
$ Something else~
$ Finish
PHP??
프로그램!
int main()
{
if(login())
printf(“HELLO!”);
else
printf(“NO..”);
}
웹 사이트에 들어갈때
int main()
{
if(login())
printf(“HELLO!”);
else
printf(“NO..”);
}
PHP 작성방법?
$ C 문법과 상당히 유사함.
$ 자료형 대신에 $ 를 사용
ex) int a;  $a;
ex) char b;  $b;
$ 포인터 없음!
$ int main{} 대신 <? ?>
$ 문자열을 이어 붙이고 싶으면 „.‟ 기호
예시를 내놓아라
============= php ============
<?
echo “세상님 ㅎㅇ”;
?>
============= C ==============
int main()
{
printf(“hello world!”);
}
추가 예제!
=============== php ===============
<?
$a = 10;
$b = „URYYYYY‟;
echo $a.”th is ”.$b
?>
============= python ==============
a =10;
b = „URYYYYY‟
print a+”th is ”+b;
PHP 제어문
C랑 같음!
$a = 1;
if($a == 1)
echo “a is 1”!;
Else if($a ==2)
echo “a is 2”!;
PHP 반복문!
C랑 같음!
$a = 10;
while($a <0)
{
echo $a.”<br>”;
$a = $a-1;
}
for ($i=0; $i<5; $i--)
{
echo $i;
echo “<br>”;
}
주상욱이 되어보자
Gugu단
<?
for($i =1; $i<10; $i++)
{
for($j = 1; $j<10; $j++)
{
echo $i."*".$j."=".$i*$j;
echo "<br>";
}
echo "<br><br>";
}
?>
유저에게 입력을 받자.
$ GET
$ POST
$ COOKIE
…
GET
$ GET
페이지?변수1=값&변수2=값
./program 1 test
GET 예제
<?
$user_input = $_GET[inp];
echo “Hello! ”.$user_input;
?>
Example
<?
$post_value = $_POST[„ID‟];
echo $post_value;
?>
POST로 보내기?
$ 복잡한걸 손으로 직접쓰기
$ 폼 형태를 사용
<form action=„index.php„ method='POST' >
<input type=„text' name=„value'>
</form>
추후 있을 문제를 통해서 이야기 하도록 합시다!
Cookie
$ 웹서버에 접근한 흔적
> 사용자가 누구인지..
$ 주로 서버에서 세팅해 주는 경우가 많음.
$ 웹 서버마다 다른 값을 가짐!
Cookie 확인 방법
Cookie 변경방법
문제를 풀어보자!!
$ 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
문제를 풀어보자!! 문제를 풀어보자!!
Source Code Auditing 1
<?
$key = “???????”;
$password = “Web_Hacking”;
if($password == $_GET[„key‟])
echo $key;
else
echo “BABO”;
?>
192.168.32.66/web/get.php
Source Code Auditing 2
192.168.32.66/web/pass.php
Hint : key=?
Why?
Source Code Auditing 3
<?
$password=“?????????????";
if(!eregi("[a-z]",$_COOKIE[id])) //a~z 문자가 아니면
$_COOKIE[id]='guest';
if($_COOKIE[id]=='admin')
echo "Cong! password is : ".$password;
echo "hello! ".$_COOKIE[id];
?>
192.168.32.66/web/cookie.php
Source Code Auditing 4
<?
$Pass = “######”;
$_POST[GET] =strtolower($_POST[GET]); // 소문자로 변환
if(eregi("admin",$_POST[GET]))
exit("YOU R NOT ADMIN");
$_POST[GET]=str_replace(".","",$_POST[GET]); //변환
if($_POST[GET] == "admin")
echo "Congraturation! AUTH key is ".$Pass;
else
echo "HI! ".$_POST[GET];
?>
192.168.32.66/web/post.php
Challenge 1
<?
$key = “#############”
$password = “?????????????????????????”
$input = $_GET['pw'];
if(strcmp($password,$input) == 0)
echo “You are admin!”;
else
echo "BABO";
?>
HINT : PHP 5.3 +
www.cert-is.com/web/strcmp.php
Challenge 2
<?
$password = “############”
extract($_GET);
if($is_admin)
echo “Hello Admin!”;
else
echo "BABO";
?>
www.cert-is.com/web/variable.php

Weitere ähnliche Inhalte

Andere mochten auch

웹기획 Story 3 검색
웹기획   Story 3 검색웹기획   Story 3 검색
웹기획 Story 3 검색
ahnsunggon
 
취약점(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 Applications
Fatih Ozavci
 
웹기획
웹기획웹기획
웹기획
semi06
 
Web of Science
Web of ScienceWeb of Science
Web of Science
khbong
 
EZ KEY_EZ
EZ KEY_EZEZ KEY_EZ
EZ KEY_EZ
Jaesung Lee
 
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Channy Yun
 

Andere mochten auch (19)

웹기획 Story 3 검색
웹기획   Story 3 검색웹기획   Story 3 검색
웹기획 Story 3 검색
 
취약점(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
 
Web vulnerability seminar2
Web vulnerability seminar2Web vulnerability seminar2
Web vulnerability seminar2
 
2013 app design trends
2013 app design trends2013 app design trends
2013 app design trends
 
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
 
웹기획
웹기획웹기획
웹기획
 
Web of Science
Web of ScienceWeb of Science
Web of Science
 
Richslide for enterprise
Richslide for enterpriseRichslide for enterprise
Richslide for enterprise
 
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] 심준보 - 급전이 필요합니다
 
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
Daum’s Business Analytics Use-cases based on Bigdata technology (2012)
 
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
웹을 지탱하는 차세대 기술 @한국웹20주년 컨퍼런스
 
두번째단추 디지털마케팅 웹기획
두번째단추 디지털마케팅 웹기획두번째단추 디지털마케팅 웹기획
두번째단추 디지털마케팅 웹기획
 
화성에서 온 개발자, 금성에서 온 기획자
화성에서 온 개발자, 금성에서 온 기획자화성에서 온 개발자, 금성에서 온 기획자
화성에서 온 개발자, 금성에서 온 기획자
 
Mobile UX Design Essential
Mobile UX Design EssentialMobile UX Design Essential
Mobile UX Design Essential
 

Web vulnerability seminar1

  • 2. Let me introduce my self $ https://www.facebook.com/Izayoi49ya
  • 3. Contents $ PHP + Source code auditing $ DB & hash $ XSS & CSRF $ Something Injection $ SQL Injection $ Something else~ $ Finish
  • 6. 웹 사이트에 들어갈때 int main() { if(login()) printf(“HELLO!”); else printf(“NO..”); }
  • 7. PHP 작성방법? $ C 문법과 상당히 유사함. $ 자료형 대신에 $ 를 사용 ex) int a;  $a; ex) char b;  $b; $ 포인터 없음! $ int main{} 대신 <? ?> $ 문자열을 이어 붙이고 싶으면 „.‟ 기호
  • 8. 예시를 내놓아라 ============= php ============ <? echo “세상님 ㅎㅇ”; ?> ============= C ============== int main() { printf(“hello world!”); }
  • 9. 추가 예제! =============== php =============== <? $a = 10; $b = „URYYYYY‟; echo $a.”th is ”.$b ?> ============= python ============== a =10; b = „URYYYYY‟ print a+”th is ”+b;
  • 10. PHP 제어문 C랑 같음! $a = 1; if($a == 1) echo “a is 1”!; Else if($a ==2) echo “a is 2”!;
  • 11. PHP 반복문! C랑 같음! $a = 10; while($a <0) { echo $a.”<br>”; $a = $a-1; } for ($i=0; $i<5; $i--) { echo $i; echo “<br>”; }
  • 13. Gugu단 <? for($i =1; $i<10; $i++) { for($j = 1; $j<10; $j++) { echo $i."*".$j."=".$i*$j; echo "<br>"; } echo "<br><br>"; } ?>
  • 14. 유저에게 입력을 받자. $ GET $ POST $ COOKIE …
  • 16. GET 예제 <? $user_input = $_GET[inp]; echo “Hello! ”.$user_input; ?>
  • 18. POST로 보내기? $ 복잡한걸 손으로 직접쓰기 $ 폼 형태를 사용 <form action=„index.php„ method='POST' > <input type=„text' name=„value'> </form> 추후 있을 문제를 통해서 이야기 하도록 합시다!
  • 19. Cookie $ 웹서버에 접근한 흔적 > 사용자가 누구인지.. $ 주로 서버에서 세팅해 주는 경우가 많음. $ 웹 서버마다 다른 값을 가짐!
  • 22. 문제를 풀어보자!! $ 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!
  • 23. Source Code Auditing 1 <? $key = “???????”; $password = “Web_Hacking”; if($password == $_GET[„key‟]) echo $key; else echo “BABO”; ?> 192.168.32.66/web/get.php
  • 24. Source Code Auditing 2 192.168.32.66/web/pass.php Hint : key=?
  • 25. Why?
  • 26. Source Code Auditing 3 <? $password=“?????????????"; if(!eregi("[a-z]",$_COOKIE[id])) //a~z 문자가 아니면 $_COOKIE[id]='guest'; if($_COOKIE[id]=='admin') echo "Cong! password is : ".$password; echo "hello! ".$_COOKIE[id]; ?> 192.168.32.66/web/cookie.php
  • 27. Source Code Auditing 4 <? $Pass = “######”; $_POST[GET] =strtolower($_POST[GET]); // 소문자로 변환 if(eregi("admin",$_POST[GET])) exit("YOU R NOT ADMIN"); $_POST[GET]=str_replace(".","",$_POST[GET]); //변환 if($_POST[GET] == "admin") echo "Congraturation! AUTH key is ".$Pass; else echo "HI! ".$_POST[GET]; ?> 192.168.32.66/web/post.php
  • 28. Challenge 1 <? $key = “#############” $password = “?????????????????????????” $input = $_GET['pw']; if(strcmp($password,$input) == 0) echo “You are admin!”; else echo "BABO"; ?> HINT : PHP 5.3 + www.cert-is.com/web/strcmp.php
  • 29. Challenge 2 <? $password = “############” extract($_GET); if($is_admin) echo “Hello Admin!”; else echo "BABO"; ?> www.cert-is.com/web/variable.php