본문 바로가기

IT

웹방화벽 회피 기술

반응형

https://medium.com/secjuice/waf-evasion-techniques-718026d693d8

작년 계시물이긴 한데 읽어보니 정말 웹방화벽에서 명령어를 줄때 URL Encode, 혹은 Base64등 알기쉬운(?)

방식을 통해 인코팅을 하고 이 것을 인지하여 방화벽에서 탐지를 하는데 의외의 방식으로 회피가 가능한 방식이다

bash에서 ?는 1개의 문자를 의미한다 따라서

ls 명령어를 실행하기 위해 /???/?s (/bin/ls)를 이런 형식으로 하면 명령이 실행이 된다

따라서 웹에서 GET 혹은 POST 방식으로 값을 넘길때 

/?cmd=cat+/etc/passwd 을 값으로 넘기면 웹방화벽에서 잡아버리지만 이것을

/?cmd=%2f???%2f??t%20%2f???%2fp??s??

형식으로 넘기면 웹방화벽을 회피하는 것이 가능하다

위 문구를 URL Decoding을 하면 -> /???/??t /???/p??s?? 이 된다 즉 /bin/cat /etc/passwd 로 인식이 되어 실행이 된다

IP도 Long Format을 사용하면 방화벽 회피가 가능하다

127.0.0.1 을 Long Format으로 변환 즉 2진수를 01111111 00000000 00000000 00000001 10진수로 변환하면 

2130706433 이 된다

이 형식으로 변환해서 IP를 입력해도 인식이 되므로 . 이 없는 형태의 IP는 웹 방화벽에서 인지하지 못하게 된다는 것이 요점이다


반응형