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

[🚀] Hacking Instructor #440

Closed
bkimminich opened this issue Jan 26, 2018 · 13 comments
Closed

[🚀] Hacking Instructor #440

bkimminich opened this issue Jan 26, 2018 · 13 comments

Comments

@bkimminich
Copy link
Member

bkimminich commented Jan 26, 2018

  1. User selects a challenge from the Score Board
  2. The Hacking Instructor guides the user through the challenge step-by-step...
  3. ...until the challenge is solved
  • Gives some soft hints first and allows to ask for more help up to full solution walkthrough
  • The "wasp" from the ebook logo could act as the instructor avatar/agent

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@bkimminich
Copy link
Member Author

Storyboard

Select Challenge

image

Helpful Wasp shows up and gives a hint

image

Helpful Wasp observes regular behavior

image

Wasp goes to screen edge waiting to be called for more help

image

Helpful Wasp gives hint what to do next

image

Another smart remark

image

Wasp goes back to screen edge

image

...

@bkimminich
Copy link
Member Author

File Format for Hacking Instructions

challenges:
  - name: XSS Tier 1
    hints:
      - text: Well, I prefer stripes, but let‘s do some cross site scripting! First, let‘s search for „wasp“ in the Search box at the top of the page!
        page: score-board
        fixture:
          - type: id
          - value: XSS Tier 1
        position: right
      - text: Good! You can see, the search value you typed also appears on top of the result list so you remember what it was! How convenient…
        page: search
        fixture:
          - type: ng-bind-html
          - value: searchQuery
        position: right
        hideAfterHint: true
      - text: Now, search for this instead and observe what happens… „<h1>wasp“
        page: search
        fixture:
          - type: ng-model
          - value: searchQuery
        position: bottom
      - text: Whoops, what happened here? You might want to inspect the text with your Browser DevTools to find out! Click me when you need more help!
        page: search
        fixture:
          - type: ng-bind-html
          - value: searchQuery
        position: right
        hideAfterHint: true
      ...

@bkimminich bkimminich pinned this issue Dec 18, 2018
@J12934
Copy link
Member

J12934 commented Feb 21, 2019

I will most likely be taking up this issue over next few month, together with @jorgestiga.

@aaryan01
Copy link
Contributor

Hey @J12934 , can I draft a proposal for this project or are you working on it?

Thanks!

@bkimminich
Copy link
Member Author

🚨 Hacking Instructor is claimed by @J12934. Putting ideas here into the ticket is of course welcome, just please no implementations right now. Thanks!

@aaryan01
Copy link
Contributor

Oh alright, thanks!

@bkimminich
Copy link
Member Author

bkimminich commented Jun 6, 2019

Great progress happening in hacking-instructor branch! Some notes/questions for future increments:

  1. Are the tutorial scripts part of the main.js? This would allow e.g. CTF-participants to very easily cheat even when the tutorial mode is turned off via configuration. Could scripts be lazily loaded from server be an option?
  2. Translatable tutorial texts! Texts would have to be loaded from e.g. CrowdIn (which would make them less easy to write and deploy due to that additional dependency) but this might increase the beginner friendliness even more. There should be one folder per tutorial in i18n so the JSON files do not get mixed up too easily.
  3. Configurable helper avatar! Custom themes could use the angry wasp, original Clippy or any other image.
  4. Apply theme color scheme to the text bubble.
  5. Click-to-fill convenience feature! Click on e.g. the payload to automatically put that value into the expected input field. Avoids accidentally skipping a step when trying to copy&paste a payload from the speech bubble.

@bkimminich bkimminich added this to the Open Security Summit 2019 milestone Jun 6, 2019
@bkimminich bkimminich pinned this issue Jun 12, 2019
@bkimminich bkimminich unpinned this issue Jun 18, 2019
@bkimminich bkimminich removed this from the Open Security Summit 2019 milestone Jun 19, 2019
@J12934
Copy link
Member

J12934 commented Jun 20, 2019

What might also be nice is to write a initial Hacking Instructor Instruction to help users find the scoreboard. This could possibly be linked in the new welcome banner to help new users find the scoreboard and the other hacking instructions.

@bkimminich bkimminich changed the title Hacking Instructor [🚀] Hacking Instructor Oct 14, 2019
@bkimminich
Copy link
Member Author

@J12934 Do you have any smart idea how we can make sure the speech bubbles do not appear too close to the window edges, no matter what anchor you pick? It sometimes overflows the screen or scrolls a bit weirdly. Best example is "Login as Admin" script right now.

@J12934
Copy link
Member

J12934 commented Oct 29, 2019

@J12934 Do you have any smart idea how we can make sure the speech bubbles do not appear too close to the window edges, no matter what anchor you pick? It sometimes overflows the screen or scrolls a bit weirdly. Best example is "Login as Admin" script right now.

Yeah i think this is pretty hard. Not sure if / how it can be done by CSS alone.
Might need some javascript logic to place the bubble differently when its to close to a edge.

@crmallory
Copy link

@bkimminich,
I just downloaded and installed the JS. Everything works fine but I do not see the Scoreboard to be able to do the challenges. What am I missing???

Please advise,

thank you

C. Ray Mallory
JS Screen Shot

@bkimminich
Copy link
Member Author

You need to find the Score Board first. There's a Hacking Instructor button to guide you on the Welcome Banner.

@github-actions
Copy link

This thread has been automatically locked because it has not had recent activity after it was closed. 🔒 Please open a new issue for regressions or related bugs.

@github-actions github-actions bot locked and limited conversation to collaborators Aug 12, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants