Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[v1.5](Important) Major changes in selenium process. #56

Open
hahwul opened this issue Feb 22, 2020 · 3 comments
Open

[v1.5](Important) Major changes in selenium process. #56

hahwul opened this issue Feb 22, 2020 · 3 comments
Assignees
Labels
Milestone

Comments

@hahwul
Copy link
Owner

hahwul commented Feb 22, 2020

before

  • selenium run only speical payloads
# Check Selenium Common XSS Payloads
      r.push makeQueryPattern('x', '"><script>alert(45)</script>', '<script>alert(45)</script>', 'v', "triggered ".yellow+"<script>alert(45)</script>".red, CallbackXSSSelenium)

after

  • Execute Selenium only when it is really special payloads(ployglot, js, etc...)
  • But, verify with selenium if it is suspected to have been reflected Payload(from reflected callback)
  • Add force running selenium mode. --force-selenium-verify
@hahwul hahwul added the plan label Feb 22, 2020
@hahwul hahwul added this to the v1.5 milestone Feb 22, 2020
@hahwul hahwul self-assigned this Feb 22, 2020
@hahwul hahwul changed the title (Important) Major changes in selenium process. [v1.5](Important) Major changes in selenium process. Feb 22, 2020
@hahwul
Copy link
Owner Author

hahwul commented Feb 22, 2020

When applied, the number of selenium requests in the primary test is halved.
However, the number of requests may increase if the "reflected callback" verified issue

I don't know what's faster and less expensive, but I need to offer options.

@hahwul
Copy link
Owner Author

hahwul commented Feb 22, 2020

It's a personal memo, so I'll write it in Korean.

  • 1)
- reflected가 확실한 경우에는 selenium을 사용하지 않고, 어중간한 결과에만 사용하는 방법도 있을 것 같음
- 다만 이 경우에 굉장히 느릴거야 아마.. 별로 좋은 방법 같진 않음 
  • 2)
- reflected가 확실한 경우에 selenium을 사용한다면 전반적으로 리소스를 많이 아낄 수 있어
- 대신 정탐에 다시 테스트하는거라 조금 애매함(왜하는지 모르겠네)

자 그럼.. selenium은 정말 효과적인가?
우선, 초기 제작 단계에서의 컨셉이야. 그리고 실제로 구동되는지 볼 수 있는건 정말 중요해.
(DOM이나 자바스크립트 내부의 XSS, 그리고 ployglot 탐지는 셀레니움이 가장 좋아)

  • 3)
- 기존 reflected는 냅두고, 셀레니움쪽 로직을 정말 탐지해야할 것만 넣는건 어떨까나..
- 리소스는 많이 줄어들겠지만, 반대로 탐지율의 하락은 있을거야. 대신 다른 룰에서 최대한 많이 커버해야해.

@hahwul
Copy link
Owner Author

hahwul commented Feb 22, 2020

추가로 ruby라서 느린것도 있네.. go로 짰어야했는데.. =_=
아무튼 성능적 이슈를 해결해야할 방법은 분명 있어. 가장 느린건 셀레니움..
(결국 성능을 잡으려면 셀레니움 사용을 최소화해야해, 아님 매번 요청마다 드라이버를 만들지 않고 스캔 초기에 로딩 후 1개의 드라이버로만 체크하는거야. 대신 드라이버에 대한 job 관리는 필수일듯)

이건 한번 성능 테스트를 해봐야할듯.

e.g
100개의 request를 10개의 쓰레드 기준: 10 driver(매번 재생성) vs 1 driver(재사용)

  • 스캔 시간
  • 시스템 부하도

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant