Hi Akampreet! First off, know that every one of us kind of struggles with this question! No one wants to air their dirty laundry so to speak and not look like a good candidate. However, we all have areas we can improve upon and interviewers do expect you to have some idea of what you're great at, and maybe not so good at.
For your strengths, think about the things that you are good at, that the job requires. Start with the job description. What can you pull out of that, that identifies skills needed? Are you a good communicator? Particular computer software you know really well? What about being able to present really well, or good at collaborating with a team? Think of things that the job requires, that you know you can do in your sleep and talk them up! Not sure if you're in high school or college, but think about teams you were on. What role did you play? Were you great at leading or motivating? Or were you more of the executor, the one to get things done? The researcher? Think about what you enjoy doing and how that has played out in past experiences.
As for weaknesses - think of it more as development needs: what experiences do you need that you currently don't have? Do you need to get better at presenting to a broader audience? Learn a certain software that will allow you to produce more? Do you need to better understand how finances in a small, large, or nonprofit work so you can better understand how your role fits with the company? If you think of your "weaknesses" more in terms of what skill sets you don't have or need to development, you'll be able to give a stronger answer in your interview.