전체 글
-
-
-
LOS - hell_fire / level 23문제 풀이/Lord Of SQL 2024. 11. 11. 20:12
문제풀이$_GET[order]로 값을 받고 있음을 확인할 수 있다. 또한, order by로 정렬을 가능함을 알 수 있다.order by 1 일때 admin이 상위로 오고 order by 3 일때 rubiya가 상위로 올라오는 것을 알 수 있다. 이를 활용하여 blind sql injection을 시도한다. case when (조건문) then 1 else 3 end을 이용하여 시도한다. case when ( id='admin' and length(email) > 1) then 1 else 3 end 만약 참일 경우 admin이 상위로, 아닐경우 rubiya가 상위로 올라오게 된다. 또한, 표로 구성되어 있으므로 beautifulsoup를 활용하여 테이블을 파싱한 뒤 비교를 시도하면 된다.soup = B..
-
LOS - dark_eyes / level 22문제 풀이/Lord Of SQL 2024. 11. 7. 21:44
문제풀이if문과 case when 모두 필터링이 걸려있으므로 iron_golem처럼 해결할 수 없다. 하지만 똑같이 error based + blind를 수행해야 한다. 이 문제를 해결하기 위해서는 2가지의 개념을 알아야 한다. 1. SQL union select는 중복된 값을 제거하고 출력 (union all select는 중복 허용)2. True => 1 / False => 0 이를 활용하면 blind sql injection이 가능해진다. ?pw=a' || (select 1 union select 1=1)#union select 1=1은 true이고 이는 1로 인식을 하게 되며 select 1과 중복값이므로 1개의 행만 반환하게 된다. ?pw=a' || (select 1 union select 1=..
-
LOS - iron_golem / level 21문제 풀이/Lord Of SQL 2024. 11. 7. 20:38
문제풀이pw에 사용자의 입력이 들어가며 결과값을 도출하는 부분이 없다. 하지만 if(mysql_error($db)) exit(mysqli_error($db)); 를 통해 db error를 사용자에게 보여주고 있다. 처음에는 error based injection을 활용하여 extractvalue 함수를 사용해서 접근을 시도하였지만 실패 ?pw=a' || extractvalue('1', concat(0x3a, 'hi'))#이런식으로 concat(0x3a, "실행할 sql 구문") 을 이용하여 공격을 시도하였으나 '_' 필터링으로 인한 schema 탈취 불가 그래서 다른 방식으로 접근을 시도하였다. if 문의 참•거짓을 활용하여 error based + blind sql injection을 활용한다. ?pw..
-
LOS - dragon / level 20문제 풀이/Lord Of SQL 2024. 11. 7. 20:18
문제풀이query : select id from prob_dragon where id='guest'# and pw='' 으로 구성되어 있으며 pw에 값을 대입할 수 있다. 하지만 pw 앞에 주석처리의 의미인 # 이 붙어있어 pw의 입력값이 생략됨을 알 수 있다. 이를 해결하기 위해서는 줄넘김 기법을 사용해서 이를 우회한다. %0a / 줄넘김(\n)%0b / 수직 텝 정답더보기?pw='%0aor%201%20limit%201,1%23
-
Webhacking.kr / old-21문제 풀이/webhacking.kr 2024. 8. 30. 10:59
문제Blind SQL Injection 문제이다풀이흔히 문제에서 많이 사용하는 guest / guest를 입력해보자login success 하지만 우리는 admin의 계정을 탈취하는 것을 목적으로 수행한다 결과값이 다른 것을 확인할 수 있다 즉 admin / 'or =1=1#을 넣었을 경우 DB에서 결과값을 돌려주지만 php 코드에서 결과값을 한번 더 확인 한 뒤 사용자에게 보여주는 것 같다wrong password = DB내 존재login fail = DB 내 존재 X 이를 이용하여 Blind SQL Injection 수행 BLIND SQLI1. admin password 길이 확인2. bit masking or lpad & bin & ord 를 활용해서 비밀번호 확인3. 입력 더보기?id=admin&..
-
Webhacking.kr / old-10문제 풀이/webhacking.kr 2024. 8. 30. 09:23
문제 설명소스코드를 확인해 보자O||||Goal 태그에 onclick 이벤트가 있고 if 문으로 리다이렉션 시키는 것을 확인할 수 있다. 즉 id=hackme a태그를 이용하여 O 문구를 1600px로 이동시키면 성공 정답더보기1. 개발자도구 -> style에 left를 1599로 변경 후 클릭2. onclick에 this.style.left=parseInt(this.style.left,10) => this.style.left=parseInt(this.style.left,1600) 수정 후 클릭