Web/Lord of Sql injection

wolfman 문제 풀이

Namchun 2023. 9. 7. 23:15

코드 분석

pw를 입력받고 오직 공백 문자만을 필터링하는 모습

공격 기법

mysql에서 공백 문자 없이 쿼리를 실행하면 syntax error (구문 에러)가 나는 경우가 생긴다

/*예시 쿼리*/
select * from EMPLOYEE where name='Clark'or1=1

/*or1=1 에서 syntax error 발생*/

 

이를 우회하기 위해서는 여러 방법들이 있지만 필자는 주석을 사용하였다

mysql 주석에는 #, -- 말고도 /*   */를 통해 여러줄의 주석을 작성할 수 있는 방법이 존재한다.

 

이를 쿼리 중간에 열고 닫게 되면 공백 문자를 사용하지 않아도 정상적으로 실행이 된다.

?pw='/**/or/**/id='admin'/**/and/**/1=1/**/--/**/'

 

물론 이 방법 이외에도 괄호를 사용하여 더 간편하게 payload를 작성할 수 있다

?pw='or(id='admin')#

'#'은 %23으로 인코딩해서 전달해야 한다.

 

 

'Web > Lord of Sql injection' 카테고리의 다른 글

orge 문제 풀이  (0) 2023.09.09
darkelf 문제 풀이  (0) 2023.09.09
orc 문제 풀이  (0) 2023.09.06
goblin 문제 풀이  (0) 2023.09.06
cobolt 문제 풀이  (0) 2023.09.05