LOS : https://los.rubiya.kr/
✔️ 문제
문제는 다음과 같다.
이번에는 공백을 삽입할 수 없도록 막아놓았다.
✔️ 풀이
풀이를 위한 코드를 살펴보자.
if($result['id'] == 'admin') solve("wolfman");
이번에도 id 값이 admin이면 문제가 풀리도록 설계되어 있다.
위 문제 설명에서 볼 수 있듯이
' or id='admin' and 1<2 # 라는 구문을 삽입해보면
다음과 같이 약올리는 것을 확인할 수 있다.
whitespace를 우회하기 위해서 다음 키워드로 구글링을 해보자.
'sql injection whitespace bypass' 라고 검색하면 최상단에
https://portswigger.net/support/sql-injection-bypassing-common-filters
SQL Injection: Bypassing Common Filters
SQL Injection: Bypassing Common Filters In some situations, an application that is vulnerable to SQL injection (SQLi) may implement various input filters ...
portswigger.net
해당 페이지가 나오게 되고, 공백을 회피하는 방법으로
다음과 같은 사진과 설명이 나오는 것을 확인할 수 있다.
SQL 상태에서 주석처리가 /**/ 구문임을 확인할 수 있는데,
주석을 열고 바로 닫음으로써 그 자체로 페이로드를 구성할 수 있게 된다.
'/**/or/**/id='admin'/**/and/**/1<2/**/#
해당 구문을 통해서 문제를 풀어보도록 하자.
문제가 바로 풀리는 것을 확인할 수 있다.
추가적으로 해당 사이트에서 %09에 해당하는 URL 인코딩을
주석을 대신해서 사용할 수 있다고 제시하는데,
%09는 다음과 같이 탭에 해당하는 것을 확인할 수 있다.
기존 공백 부분 %20 자리를 %09로 대체하게 되면,
동일하게 풀리는 것을 확인할 수 있다.
화이팅 💪
'보안 > LOS' 카테고리의 다른 글
[LOS] orge (0) | 2022.12.20 |
---|---|
[LOS] darkelf (0) | 2022.12.20 |
[LOS] orc (0) | 2022.12.19 |
[LOS] goblin (0) | 2022.12.19 |
[LOS] cobolt (0) | 2022.12.19 |