분류 전체보기

[LOS] phantom

문제 https://los.rubiya.kr/chall/phantom_e2e30eaf1c0b3cb61b4b72a932c849fe.php los.rubiya.kr 문제풀이 문제가 풀리는 부분을 보니, no=1인 email의 값을 알아내야 한다. if(($result['email']) && ($result['email'] === $_GET['email'])){ mysqli_query($db,"delete from prob_phantom where no != 1"); solve("phantom"); } no, ip, email 순서로 데이터베이스에 삽입되며, IP주소는 자동으로 설정된다. joinmail 파라미터를 통해 다중 값을 삽입할 수 있다. "insert into prob_phantom values(0..

write-up(web)/los 2023.11.04

[LOS] frankenstein

문제 https://los.rubiya.kr/chall/frankenstein_b5bab23e64777e1756174ad33f14b5db.php los.rubiya.kr 문제풀이 error based injection이다. union, (, ) 등 문자열이 필터되어서 select 1 union select 2로 에러를 낼 수 없다. 9e307 * N를 이용할 수 있는데, 9e307 * N은 최댓값 범위를 넘어서서 에러가 난다. 괄호 없이 에러를 발생시키기 위해 case when then else end 을 사용할 수 있다. case when 조건 then 참일 때 else 거짓일 때 end 몇글자인지 몰라서 10자리로 해서 코드를 작성했다. import requests import time cookie ..

write-up(web)/los 2023.11.04

[LOS] blue_dragon

문제 https://los.rubiya.kr/chall/blue_dragon_23f2e3c81dca66e496c7de2d63b82984.php los.rubiya.kr 문제풀이 id가 admin인 pw를 알아내면 된다. 작은 따옴표가 필터링되어 구문을 조작하여 알아낼 수가 없다. 위 코드를 보면 query문을 전송하고, 그 다음에 preg_match()를 통해 필터링한다. 이를 이용해서 time based injection이 가능하다. import requests import time cookie = {'PHPSESSID':'13l0s9eggfb6mttoaqkr15jkhu'} url = "https://los.rubiya.kr/chall/blue_dragon_23f2e3c81dca66e496c7de2d6..

write-up(web)/los 2023.11.03