Webhacking.kr Challenge old-50 문제 풀이
이번 문제는 45번 문제와 유사한 문제이다. 코드를 보면 id, pw 둘 다 addslashes함수로 ', ", \, null을 필터링하고 foreach를 이용해 id와 pw 둘 다 from, pw, (, ), %, =, , 공백을 필터링하고 있다. 또한, id만 union을 추가로 필터링하고 있다. 쿼리 출력값이 lv=3이면 문제는 풀린다. 우선 id쪽을 공략해 보자 addslashes는 멀티바이트를 이용하여 우회가 가능하고 id = 123%a1'%0bor%0blv%0blike%0b2%23&pw=123을 입력해 보면 (%0b -> 공백 우회) level : 2가 출력되는 걸 볼 수 있다. 그럼 lv=3을 넣으면 바로 풀리지 않을까? 3을 넣으니 Wrong이 출력되는걸 볼 수 있다. 그러면 db에 lv가..
2024. 3. 20.
Webhacking.kr Challenge old-9 문제 풀이
문제에 접속해 보면 1, 2, 3이 있고 각 번호를 누르면 url을 보면 no파라미터로 번호를 받고 있고 no=3을 들어갔을 때 컬럼과 3번의 id가 password라고 출력되는 걸 확인할 수 있다. 우선 코드가 공개되어 있지 않지만 sql injection인 게 유력하므로 쿼리문을 유추해 보면 mysqli_fetch_array(mysqli_query($db,"select id, no from chall9 where no=? ”));일것으로 예상된다. sql injection 시도해 본 결과 필터링 목록 : union, select, ‘, =, -,+,%, , char, PROCEDURE, or, and, ||, 공백을 확인했고 더 많은 필터링이 존재할 것이다. 처음에 컬럼값을 확인해야 하므로 union..
2024. 3. 15.