golem

2022. 4. 2. 16:26Site/LOS

먼저 소스코드를 보면  첫번째 preg_match함수로 prob _ . ( )를 필터링해주고

두번째 preg_match함수에서 or and substr ( = 을 필터링 처리해주고있습니다

addslashes함수로 get방식으로 받아온 pw값을 필터링해주므로 sql injection 공격이 불가능할 것 같네요

쿼리문에서 추출된 pw와 get방식으로 받아온 pw값이 정확히 일치해야 클리어될 것 같습니다

따라서 이번는 blind sql injection을 이용해야 될 것 같습니다

 

우회방법

or -> ||, and -> &&, substr -> mid, = -> like로 우회를 하면 될 것 같습니다

cf) mid(문자, 시작위치, 가져올갯수); ex) mid('abcde', 2, 4); -> bcde

 

접근방법

먼저 length 함수를 통해 pw의 길이를 구하고 길이가 맞다면 Hello admin을 출력

mid함수를 통해 pw에 들어있는 문자열을 추출며 0-9, a-z, A-Z순으로 대입하겠습니다

 

or 대신에 ||을 통해 앞에 문장을 false처리하고 = 대신 like를 이용하여 길이추출했더니 8입니다

 

 

 

종합해보면은 최종 pw값은 77d6290b 입니다

 

 

'Site > LOS' 카테고리의 다른 글

bugbear  (0) 2022.04.05
darknight  (0) 2022.04.05
skeleton  (0) 2022.04.01
vampire  (0) 2022.04.01
troll  (0) 2022.04.01