web vulnerability seminar1

29
Web vulnerability seminar from make to exploit

Upload: sakuya-izayoi

Post on 23-Jun-2015

958 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web vulnerability seminar1

Web vulnerability seminar

from make to exploit

Page 2: Web vulnerability seminar1

Let me introduce my self

$ https://www.facebook.com/Izayoi49ya

Page 3: Web vulnerability seminar1

Contents

$ PHP + Source code auditing

$ DB & hash

$ XSS & CSRF

$ Something Injection

$ SQL Injection

$ Something else~

$ Finish

Page 4: Web vulnerability seminar1

PHP??

Page 5: Web vulnerability seminar1

프로그램!

int main() { if(login()) printf(“HELLO!”); else printf(“NO..”); }

Page 6: Web vulnerability seminar1

웹 사이트에 들어갈때

int main() { if(login()) printf(“HELLO!”); else printf(“NO..”); }

Page 7: Web vulnerability seminar1

PHP 작성방법?

$ C 문법과 상당히 유사함.

$ 자료형 대신에 $ 를 사용

ex) int a; $a;

ex) char b; $b;

$ 포인터 없음!

$ int main{} 대신 <? ?>

$ 문자열을 이어 붙이고 싶으면 „.‟ 기호

Page 8: Web vulnerability seminar1

예시를 내놓아라

============= php ============

<?

echo “세상님 ㅎㅇ”;

?>

============= C ==============

int main() {

printf(“hello world!”); }

Page 9: Web vulnerability seminar1

추가 예제!

=============== php =============== <? $a = 10; $b = „URYYYYY‟; echo $a.”th is ”.$b ?> ============= python ============== a =10; b = „URYYYYY‟ print a+”th is ”+b;

Page 10: Web vulnerability seminar1

PHP 제어문

C랑 같음!

$a = 1;

if($a == 1)

echo “a is 1”!;

Else if($a ==2)

echo “a is 2”!;

Page 11: Web vulnerability seminar1

PHP 반복문!

C랑 같음! $a = 10; while($a <0) { echo $a.”<br>”; $a = $a-1; } for ($i=0; $i<5; $i--) { echo $i; echo “<br>”; }

Page 12: Web vulnerability seminar1

주상욱이 되어보자

Page 13: Web vulnerability seminar1

Gugu단

<? for($i =1; $i<10; $i++) { for($j = 1; $j<10; $j++) { echo $i."*".$j."=".$i*$j; echo "<br>"; } echo "<br><br>"; } ?>

Page 14: Web vulnerability seminar1

유저에게 입력을 받자.

$ GET

$ POST

$ COOKIE

Page 15: Web vulnerability seminar1

GET

$ GET

페이지?변수1=값&변수2=값

./program 1 test

Page 16: Web vulnerability seminar1

GET 예제

<?

$user_input = $_GET[inp];

echo “Hello! ”.$user_input;

?>

Page 17: Web vulnerability seminar1

Example

<? $post_value = $_POST[„ID‟]; echo $post_value; ?>

Page 18: Web vulnerability seminar1

POST로 보내기?

$ 복잡한걸 손으로 직접쓰기

$ 폼 형태를 사용

<form action=„index.php„ method='POST' >

<input type=„text' name=„value'>

</form>

추후 있을 문제를 통해서 이야기 하도록 합시다!

Page 19: Web vulnerability seminar1

Cookie

$ 웹서버에 접근한 흔적

> 사용자가 누구인지..

$ 주로 서버에서 세팅해 주는 경우가 많음.

$ 웹 서버마다 다른 값을 가짐!

Page 20: Web vulnerability seminar1

Cookie 확인 방법

Page 21: Web vulnerability seminar1

Cookie 변경방법

Page 22: Web vulnerability seminar1

문제를 풀어보자!! $ 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!

문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!! 문제를 풀어보자!!

Page 23: Web vulnerability seminar1

Source Code Auditing 1

<? $key = “???????”; $password = “Web_Hacking”; if($password == $_GET[„key‟]) echo $key; else echo “BABO”; ?> 192.168.32.66/web/get.php

Page 24: Web vulnerability seminar1

Source Code Auditing 2

192.168.32.66/web/pass.php

Hint : key=?

Page 25: Web vulnerability seminar1

Why?

Page 26: Web vulnerability seminar1

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

Page 27: Web vulnerability seminar1

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

Page 28: Web vulnerability seminar1

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

Page 29: Web vulnerability seminar1

Challenge 2

<?

$password = “############”

extract($_GET);

if($is_admin)

echo “Hello Admin!”;

else

echo "BABO";

?>

www.cert-is.com/web/variable.php