Stepper! Evolution repeater on Burp suite

오늘은 Burp suite의 확장 기능 하나를 소개할까 합니다. 개인적으로 최근에 찾은 것 중에 정말 쓸만하다고 느끼는 확장 기능입니다.

Stepper(https://github.com/CoreyD97/Stepper )입니다.

What is Stepper?

Stepper는 기존 Repeater의 개선 버전 정도로 생각하시면 좋습니다. Repeater는 단순히 요청에 대한 응답을 테스트할 수 있는 Burp suite의 기본 기능이고, Stepper에선 Repeater를 기반으로 좀 더 많은 기능이 내장되어 있습니다.

전반적인 컨셉은 Step by Step에 최적화된 Repeater입니다.

How to install

Stepper는 아직 인기가 많은 확장 기능은 아니고 BApp Store에도 없습니다. jar 파일 다운로드 후 직접 설치가 필요합니다.

wget https://github.com/CoreyD97/Stepper/releases/download/v1.3/Stepper-1.3.jar

  • 신규 릴리즈가 나오면 버전이 바뀌게 되니 릴리즈 링크에서 직접 받아서 하시는걸 추천드립니다.

Extension tab에서 불러와줍니다.

How to use? How to Testing

크게 Tab(Sequence)과 Step 부분으로 나뉩니다. Tab은 한 작업, 즉 플로우를 의미하고 Step 부분에서 각각 순서에 맞는 요청을 세팅할 수 있습니다. 기존에 Repeater로 밀어넣듯이 Context menu에서 넣어주시면 됩니다.

우선 여러가지 기능을 제외하고도 플로우의 Req/Res를 한군데 모아둘 수 있다는 것 자체만으로도 큰 이점입니다만, 이를 한번에 순차로 실행할 수 있고 변수를 이용해서 Step 간의 특정 데이터들을 공유하여 사용할 수 있습니다.

Use case 1 - Channing Attack

기존 Repeater로 Chain Attack을 정리하기란 상당히 귀찮습니다.

항상 이런 불상사가… (4개면 다행이죠)

이럴 때 Chaing Attack의 큰 이름을 Tab(시퀀스)로 지정해주고 각각 단위의 Step을 추가해서 테스팅하면 굉장히 편합니다. 물론 별도의 PoC를 만들어야한다면..어느정도 작업이 필요하겠지만, 그래도 Repeater 보다는 훨씬 좋습니다.

Use case 2

Flow를 중요시하게 봐야하는 구간에서 진짜 유용합니다. 대표적으로 비즈니스 로직 부분이나 금융, 결제 관련해선 요청의 흐름을 잘 기록하고 테스트 해야하는데, 이 때 유용하게 사용됩니다.

Conclusion

예전부터 Burp+ZAP 조합을 사용하곤 있지만, 실제론 Burp 사용 빈도가 압도적으로 높습니다. (어쩔 수 없나봐요.. 분석 자체는 Burp가 훨씬 좋으니..)

그 중 큰 역할을 차지하는게 확장 기능쪽인데, Burp쪽의 오픈소스나 공식 지원 확장 기능은 정말 유용한 것 같습니다. (다만 만들기는 참 불편..)

굉장히 쓸만한 도구를 건진 것 같은 느낌이니 다같이 잘 써봅시당 :)