http://www.wechall.net
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); 
  if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~"); 
  $query = "select id from prob_goblin where id='guest' and no={$_GET[no]}"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id']) echo "<h2>Hello {$result[id]}</h2>"; 
  if($result['id'] == 'admin') solve("goblin");
  highlight_file(__FILE__); 
?>

no에 GET을 받고 있다. 하지만 Quotes를 차단하는 것으로 보인다. 그렇다면 hex로 뚜까 패주면 된다!
No값에 0x27%20or%20id=0x61646D696E%23

0x27 = ' 
0x61646D696E = admin
%23 = #

'WarGame or CTF > Wargame' 카테고리의 다른 글

[Lord of SQL Injection] cobolt  (0) 2019.10.07
[Lord of SQL Injection] gremlin  (0) 2019.10.07
[ctf.j0n9hyun.xyz] 보물  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hash  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Button  (0) 2019.06.24
<?php
  include "./config.php"; 
  login_chk();
  $db = dbconnect();
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_cobolt where id='{$_GET[id]}' and pw=md5('{$_GET[pw]}')"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id'] == 'admin') solve("cobolt");
  elseif($result['id']) echo "<h2>Hello {$result['id']}<br>You are not admin :(</h2>"; 
  highlight_file(__FILE__); 
?>

이전 챌린지와 동일하게, 필터링을 하게 되는 것으로 보인다.

그러므로 간단하게! id에 admin'#injection을 할 경우 result['id'] == admin가 됨으로써 Solve가 된다!

'WarGame or CTF > Wargame' 카테고리의 다른 글

[Lord of SQL Injection] goblin  (0) 2019.10.07
[Lord of SQL Injection] gremlin  (0) 2019.10.07
[ctf.j0n9hyun.xyz] 보물  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hash  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Button  (0) 2019.06.24

아래와 같이 SQL Injection 문제가 주어졌다.

<?php
  include "./config.php";
  login_chk();
  $db = dbconnect();
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); // do not try to attack another table, database!
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
  $query = "select id from prob_gremlin where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
  echo "<hr>query : <strong>{$query}</strong><hr><br>";
  $result = @mysqli_fetch_array(mysqli_query($db,$query));
  if($result['id']) solve("gremlin");
  highlight_file(__FILE__);
?>

인증만 우회하면 될 것으로 보여,

ID: gremlin
PW: %27%20or%201=1%23

위와 같이 Request를 하여 Clear을 하였다.

'WarGame or CTF > Wargame' 카테고리의 다른 글

[Lord of SQL Injection] goblin  (0) 2019.10.07
[Lord of SQL Injection] cobolt  (0) 2019.10.07
[ctf.j0n9hyun.xyz] 보물  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hash  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Button  (0) 2019.06.24

해당 문제는 Page1, Page 2, Page 3 이런 식으로 정렬이 되어있다.

1번 버튼을 눌러줬을 경우, /?page=1을 볼 수 있다.

하지만 숨겨져있다고 하였기에, 1번부터 2000번까지 브루트포싱을 진행할 경우,
1225에서 플래그가 아래 사진처럼 나온다.

 

'WarGame or CTF > Wargame' 카테고리의 다른 글

[Lord of SQL Injection] cobolt  (0) 2019.10.07
[Lord of SQL Injection] gremlin  (0) 2019.10.07
[ctf.j0n9hyun.xyz] Hash  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Button  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hidden  (0) 2019.06.24

해당 문제는 md5를 encryption을 하여, 푸는 문제이다.

위를 볼 경우 240610708를 md5로 encryption을 해줘야된다.
그 결과는 0e462097431906509019562988736854이며, 그대로 입력을 해준다면?

이것도 magic hash 라고 하는지는 모르겠지만, 정상적으로 잘 풀린다는 것을 확인할 수 있다.

'WarGame or CTF > Wargame' 카테고리의 다른 글

[Lord of SQL Injection] gremlin  (0) 2019.10.07
[ctf.j0n9hyun.xyz] 보물  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Button  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hidden  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Authorized  (0) 2019.06.24

위처럼 버튼에서 플래그를 나오게끔 해달라고 한다.

크롬의 개발자 도구를 통하여, form 안에 있는 input value를 button -> flag로 해줬다.

정상적으로 내뱉는 것을 확인할 수 있었다.

'WarGame or CTF > Wargame' 카테고리의 다른 글

[ctf.j0n9hyun.xyz] 보물  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hash  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hidden  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Authorized  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hidden Flag  (0) 2019.06.24

사이트를 들어가게 될 경우 1, 2, 3, 4로 정렬이 되어있다.

하지만 위에 "5번 파일에 플래그가 있다악!!!!!!!"을 보게될 경우,

5번을 찾아야되겠지만, 없는 것을 볼 수 있다.
어떤 방식으로 굴러가는지 알기 위해 아무거나 눌러준다.

1번 파일을 눌러줄 경우 /?id=1 로 보내주는 것을 확인할 수 있다.
그렇다면 우리는 5번 파일을 눌러줘야된다. 그렇다면? /?id=5을 해주면 되는 것이다.
정말 간단하고 쉬운 문제이다.

'WarGame or CTF > Wargame' 카테고리의 다른 글

[ctf.j0n9hyun.xyz] Hash  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Button  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Authorized  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hidden Flag  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Home  (0) 2019.06.20

접속할 경우 사진처럼 나오게 된다.
하지만 이것으로 flag를 찾기 힘들 수 있으니, 정보 수집 능력(?)을 위해서 소스 보기를 한번 해보도록 하자.

auth 라는 함수가 False가 되어 있다고 힌트가 알려준다.
그렇다면 get로 /?auth=true 해줬더니?!?!?!

그랬더니 뚝딱 나왔다.

'WarGame or CTF > Wargame' 카테고리의 다른 글

[ctf.j0n9hyun.xyz] Button  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hidden  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hidden Flag  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Home  (0) 2019.06.20
Simple SQL Injection  (0) 2019.03.29

저는 해당 문제가 해킹의 기본기를 테스트하는 것이라고 생각합니다.

해킹을 하기 위해서는 대상을 알아야되기 때문에, 정보 수집이 필요로 합니다.

정보 수집을 하기 위한 것이 무엇이냐고 물어볼 수 있습니다.

보통 구글과 같은 검색 엔진경우 흔히 봇을 통해서 정보를 수집을 하고, 우리가 보고 있는 검색 사이트에 반영이 된다고 보시면 됩니다.
분명, 봇이 방문하기 꺼려하는 사이트가 있지 않을까요?
그래서 만들어진게 robots.txt 입니다. 

robots.txt 내용에 나는 어떤 로봇을 싫어해, 아니면 난 모든 봇을 싫어해 라고 봇에게 전달할 수 있다고 보면 되는거에요!

이제 robots.txt 에 대해서 알아봤으니, 한번 문제로 돌아가볼까요?

귀엽고 깜찍한 로봇이 기다리고 있다.
이 사진을 통해서 강력한 힌트를 제공하고 있다고 생각하고 있다.
그래서 링크 뒤에 robots.txt를 입력해주었다.

User-agent: *
Disallow: /robot_flag/

위와 같이 나오게 된다.

위에 있는 부분을 해석하자고 하면, /robot_flag/에 대해서 검색 엔진에게 검색하지말라는 것이다.
그렇다면 이것을 활용할 수 있다면, flag를 알아낼 수 있다.

그렇게 해서 간단하게 flag를 구할 수 있었다.

'WarGame or CTF > Wargame' 카테고리의 다른 글

[ctf.j0n9hyun.xyz] Hidden  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Authorized  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Home  (0) 2019.06.20
Simple SQL Injection  (0) 2019.03.29
system32.kr [Forensics] Cert  (0) 2018.08.02

 

curl --verbose --header "X-Forwarded-For: 127.0.0.1" http://ctf.j0n9hyun.xyz:2034/

http://ctf.j0n9hyun.xyz:2034

 

'WarGame or CTF > Wargame' 카테고리의 다른 글

[ctf.j0n9hyun.xyz] Authorized  (0) 2019.06.24
[ctf.j0n9hyun.xyz] Hidden Flag  (0) 2019.06.24
Simple SQL Injection  (0) 2019.03.29
system32.kr [Forensics] Cert  (0) 2018.08.02
system32.kr  (0) 2018.08.02

+ Recent posts