본문 바로가기

꿀팁!

node-redis Bug case

command의 첫번째 인자에 array 타입이 올 경우 기존 방식과는 다르게 처리 되는것을 이용

// String Typekey, value, callback => Command(command, [key, value], callback) 
// Array Type[key, value] => Command(command, key, value)

redis_client.send_command(log_query[0], log_query[1], function(err, result)

예시로 다음처럼 log_query를 get으로 받아 command를 실행시켜주는 함수가 있다. callback함수까지 있는 형식이지만

여기에 다음처럼 array형태로 줄경우 callback함수는 무시된다.

 

?log_query[0]=set&log_query[1]=admin&log_query[1]=1234

 

log_query[0]=set

log_query[1]=[admin,1234] 가 들어가게 된다.

즉 send_command(set, admin, 1234)가 실행되는것

 

그럼 인자를 하나만 쓰려면?

?log_query[0]=keys&log_query[1][0]=*

다음처럼 2차원배열을 이용하면 된다.

send_command(keys,*)이 실행될것이다.

 

만약 session관리를 redis로 관리할경우, 사용자의 session 값에 해당하는 key에 object를 serialize 한거같은 string 형태의 문자열로 저장하여 관리하게 된다. 즉 나의세션key:value형태로 저장되는데 여기서 value를 수정하면 다른사용자로 위장이 가능해진다.

'꿀팁!' 카테고리의 다른 글

WACon2022-Kuncɛlan 공부  (4) 2022.06.29
SSTI 문서  (0) 2022.06.23
mysql error based injection 잘 되어 있는 곳  (2) 2022.06.14
한글 blind sqlinjection  (0) 2022.06.13
python flask debugger pin취약점 문제  (0) 2022.06.08