분류 전체보기 (109) 썸네일형 리스트형 Hack the Box - format hackthebox format 문제는 새로운 방법을 알 수 있어서 좋았던 문제였다 init()함수는 별거 없었고 진짜는 echo 함수에 있었다 파일을 실행했을 때를 보면 입력을 받고 출력을 해준다 그렇다면 echo함수에 while문에 들어있는것은 아이다에 funtion name을 보면 fgets랑 printf가 있어 어떤 함수 인지 알 수 있다 echo 함수 11번 줄을 보면 fsb가 일어나고 어느부분에 oneshot 가젯을 덮으면 풀릴거 같은 기분이 들었다 6번째에 AAAAAAAA이 나타나는 모습을 볼 수 있다 libc_base를 구하기 위해 __libc_start_main을 찾았다 이 함수에서 main을 호출하고 main이 종료하면 다시 위의 함수로 돌아간다. __libc_start_main -> .. H@cktivityCon 2021 CTF - Faucet 그때 당시에 풀진 못 했지만 롸업을 봤을 때 포린이로써 신기했던 문제 undefined8 main(void) { undefined4 uVar1; FILE *__stream; __stream = fopen("flag.txt","r"); if (__stream != (FILE *)0x0) { fgets(FLAG,0x100,__stream); fclose(__stream); puts(faucet); puts("*drip *drip *drip\n"); puts("How are we going to fix this leaky faucet?"); do { uVar1 = menu(); switch(uVar1) { default: puts("Invalid choice.\n"); break; case 1: use_ham.. old-23 xss 문제이다 하지만 밑에 스크립트를 넣으면 no hack 이라는 문구가 나온다 문자에 대한 필터링이 존재하는거 같았다 어떻게 우회하지 하다가 가지고 있는 지식을 총 동원해서 %00을 생각해냈다 %00a%00l%00e%00r%00t%00(%001%00)%00;%00 이런식으로 하면 스크립트가 동작해 문제가 풀리게 된다 old-22 old-21 이랑 비슷한 문제이다 admin이름으로 계정 가입을 했을때 admin 계정으로 로그인해야겠다는 감이 온다 이제 어디서 인젝션이 터지는지 확인해 볼 차례 테스트로 guest 계정을 만들었다 guest' and 1=1/asdf를 했을때 guest' and 1=2#/asdf 를 했을때 참과 거짓을 찾았다 guest/guest를 하게 되면 hash 값이 나오는데 이것은 나중에 살펴보자 우선 파이썬으로 admin계정의 패스워드를 알아내보자 import requests cookie = {"PHPSESSID":"자신의 세션"} url = "https://webhacking.kr/challenge/bonus-2/index.php" for i in range(1, 50): data = {"uuid":f"ad.. old-21 블라인드 sql이니 참 거짓 역할을 하는 단어를 찾아보자 guest/guest 입력시 guest' or 1=1#/asdf 입력시 guest' and 1=2#/asdf 입력시 위에 결과를 보면 참일 때는 wrong password 거짓일 때 login fail이 나오는거 같았다 이를 토대로 파이썬의 도움을 받아 sql injection을 해보면 admin/샐행 결과 로 로그인하면 문제가 풀린다 old-20 화면을 보아하니... 2초안에 3가지를 다 써야하는거 같았다 사람손으로 저게 가능할리가... function ck(){ if(lv5frm.id.value=="") { lv5frm.id.focus(); return; } // 빈공간이면 return if(lv5frm.cmt.value=="") { lv5frm.cmt.focus(); return; } // 빈공간이면 return if(lv5frm.captcha.value=="") { lv5frm.captcha.focus(); return; } // 빈공간이면 return if(lv5frm.captcha.value!=lv5frm.captcha_.value) { lv5frm.captcha.focus(); return; } // 입력한 캡차가 다르면 return .. old-19 admin말고 더 문자가 안써진다 소스코드를 보면 이유가 나온다 이유는 maxlength 부분이 5이기 때문에 문자가 admin말고 안적어졌다 넉넉하게 값을 수정해주고 admin'#을 써주면 풀린다 old-18 소스코드를 보면 if(preg_match("/ |\/|\(|\)|\||&|select|from|0x/i",$_GET['no'])) exit("no hack"); // 필터링을 보면 db 추출은 불가능할거 같다 // admin 이 2번에 있다는 것을 알려주고 공격 포인트! $result = mysqli_fetch_array(mysqli_query($db,"select id from chall18 where id='guest' and no=$_GET[no]")); // admin's no = 2 if($result['id']=="admin"){ // id 가 admin 이면 문제가 풀린다 solve(18); echo "hi admin!"; } 늘 하던데로... 공격구문을 짜보자 select id from c.. 이전 1 2 3 4 5 6 7 8 ··· 14 다음