๐ท old-39 ์๊ฒ์ ๋ฌธ์ ํ์ด
1. ๋ฌธ์ ํ๋ฉด์ผ๋ก ๋ค์ด๊ฐ view-source ํด๋ฆญ
2. ์ฝ๋ ๋ถ์๊ณผ ํจ๊ป ๋ฌธ์ ํ์ด ์กฐ๊ฑด ํ์
<?php
include "../../config.php"; // ์ธ๋ถ ์ค์ ํ์ผ ํฌํจ
if($_GET['view_source']) view_source(); // ๋ง์ฝ view_source ๋งค๊ฐ๋ณ์๊ฐ ์ ๋ฌ๋๋ฉด, ์์ค ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ํจ์๋ฅผ ํธ์ถ
?>
<html>
<head>
<title>Chellenge 39</title>
</head>
<body>
<?php
$db = dbconnect(); // ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ๋ ํจ์๋ฅผ ํธ์ถํ์ฌ ์ฐ๊ฒฐ ๊ฐ์ฒด ์์ฑ
if($_POST['id']){ // ๋ง์ฝ POST ์์ฒญ์ผ๋ก 'id' ๋งค๊ฐ๋ณ์๊ฐ ์ ๋ฌ๋์๋ค๋ฉด
$_POST['id'] = str_replace("\\","",$_POST['id']); // ์ญ์ฌ๋์(\)๋ฅผ ๋น ๋ฌธ์์ด๋ก ๋์ฒด
$_POST['id'] = str_replace("'","''",$_POST['id']); // ์์๋ฐ์ดํ(')๋ฅผ ๋ ๊ฐ์ ์์๋ฐ์ดํ('')๋ก ๋์ฒด (SQL ์ธ์ ์
๋ฐฉ์ง)
$_POST['id'] = substr($_POST['id'],0,15); // 'id' ๊ฐ์ ๊ธธ์ด๋ฅผ ์ต๋ 15๋ก ์ ํ
// 'id' ๊ฐ์ ๊ธธ์ด๊ฐ 14๋ณด๋ค ์๊ณ , ํด๋น 'id' ๊ฐ์ ๊ฐ์ง ๋ ์ฝ๋๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 'member' ํ
์ด๋ธ์ ์กด์ฌํ๋์ง ํ์ธ
$result = mysqli_fetch_array(mysqli_query($db,"select 1 from member where length(id)<14 and id='{$_POST['id']}'"));
// ๋ง์ฝ ๊ฒฐ๊ณผ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๊ฐ 1์ด๋ฉด
if($result[0] == 1){
solve(39); // ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ํจ์ ํธ์ถ
}
}
?>
<!-- POST ์์ฒญ์ผ๋ก 'id' ๊ฐ์ ์ ๋ฌํ๋ ํผ ์์ฑ -->
<form method=post action=index.php>
<input type=text name=id maxlength=15 size=30>
<input type=submit>
</form>
<!-- 'view-source' ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ์ฌ ์์ค ์ฝ๋๋ฅผ ๋ณผ ์ ์๋ ๋งํฌ ์์ฑ -->
<a href=?view_source=1>view-source</a>
</body>
</html>
++ ๊ณ ๋ คํด์ผ ํ ์ฌํญ
โ SQL ๋ฌธ์ ๋ง์ง๋ง์ ' ์ด ํ๋ ๋น ์ ธ์์
select 1 from member where length(id)<14 and id='{$_POST['id']}
โ ์์ ๋ฐ์ดํ( ' ) ์ ๋ ฅ ์ ํฐ ๋ฐ์ดํ( " )๋ก ์นํ
$_POST['id'] = str_replace("'","''",$_POST['id']);
โ id์ ๊ฐ์ 15๋ฒ์งธ ์๋ฆฌ๊น์ง๋ง ์ ์ฅ๋จ
$_POST['id'] = substr($_POST['id'],0,15);
3. ์๋จ ์ฝ๋์ ํด๊ฒฐ ์กฐ๊ฑด์ ์ฐธ๊ณ ํ์ฌ ์ ๋ ฅ๊ฐ ์์ฑ
# ์์ฑํ ์
๋ ฅ๊ฐ
1ใ
คใ
คใ
คใ
คใ
คใ
คใ
คใ
คใ
คใ
คใ
คใ
คใ
คใ
คใ
ค'
++ ์ ๋ ฅ๊ฐ ์ค๋ช
๋ฌธ์ ํด๊ฒฐ ์ ์ ์ฌํญ | ํด๊ฒฐ ๋ฐฉ๋ฒ |
โ SQL ๋ฌธ์ ๋ง์ง๋ง์ ' ์ด ํ๋ ๋น ์ ธ์์ | SQL ๋ฌธ์ ๋ง์ง๋ง์ ์์ ๋ฐ์ดํ( ' ) ์ถ๊ฐ |
โ ์์ ๋ฐ์ดํ( ' ) ์ ๋ ฅ ์ ํฐ ๋ฐ์ดํ( " )๋ก ์นํ | ์์ ๋ฐ์ดํ( ' )๊ฐ 2๊ฐ ๋ชจ์ด๋ฉด ํฐ ๋ฐ์ดํ( " )๊ฐ ๋๋ค๋ ๊ฒ์ ์ง์ค |
โ id์ ๊ฐ์ 15๋ฒ์งธ ์๋ฆฌ๊น์ง๋ง ์ ์ฅ๋จ | ์์ ๋ฐ์ดํ( ' )๊ฐ ํฐ ๋ฐ์ดํ( " )๋ก ์นํ๋ ๋, ๋ง์ง๋ง ๋ถ๋ถ( 16๋ฒ์งธ ์๋ฆฌ์ ' )์ด id ๊ธธ์ด ์ ํ์ ์ํด ์๋ ค๋๊ฐ๋๋ก ํจ |
4. ๋ค์ ๋ฌธ์ ํ์ด์ง๋ก ๋์์ 3๋ฒ ๊ณผ์ ์์ ์์ฑํ ๊ฐ ์ ๋ ฅ
5. ๊ฐ ์ ๋ ฅ ํ ์ ์ถ ๋ฒํผ ํด๋ฆญ --> ๋ฌธ์ ํด๊ฒฐ ์ฑ๊ณต
'โ๏ธ Web Hacking > Webhacking.kr' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Webhacking.kr] old-53 ์๊ฒ์ ๋ฌธ์ ํ์ด (1) | 2023.08.31 |
---|---|
[Webhacking.kr] old-01 ์๊ฒ์ ๋ฌธ์ ํ์ด (0) | 2023.08.28 |
[Webhacking.kr] old-06 ์๊ฒ์ ๋ฌธ์ ํ์ด (0) | 2023.08.27 |
[Webhacking.kr] old-11 ์๊ฒ์ ๋ฌธ์ ํ์ด (0) | 2023.08.26 |
[Webhacking.kr] old-23 ์๊ฒ์ ๋ฌธ์ ํ์ด (0) | 2023.08.25 |