├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── custom.md │ └── feature_request.md ├── README.md └── README_CN.md /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | A clear and concise description of what the bug is. 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots** 21 | If applicable, add screenshots to help explain your problem. 22 | 23 | **Desktop (please complete the following information):** 24 | - OS: [e.g. iOS] 25 | - Browser [e.g. chrome, safari] 26 | - Version [e.g. 22] 27 | 28 | **Smartphone (please complete the following information):** 29 | - Device: [e.g. iPhone6] 30 | - OS: [e.g. iOS8.1] 31 | - Browser [e.g. stock browser, safari] 32 | - Version [e.g. 22] 33 | 34 | **Additional context** 35 | Add any other context about the problem here. 36 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/custom.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Custom issue template 3 | about: Describe this issue template's purpose here. 4 | 5 | --- 6 | 7 | 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # web-sec-interview 2 | 3 | Information Security Industry Practitioners (Web Security / Penetration Testing) Interview Questions 1.1 4 | 5 | ### README English | [中文](README_CN.md) 6 | 7 | --- 8 | 9 | * Introduce the experience of burrowing (or CTF experience) that you think is interesting 10 | 11 | * What are the more vulnerabilities you usually use? The principle of related vulnerabilities? And a fix for the vulnerability? 12 | 13 | * What tools do you usually use and the characteristics of the corresponding tools? 14 | 15 | * How to do sql injection / upload Webshell if you encounter waf? Please write the process of bypassing WAF (SQLi, XSS, upload vulnerability) 16 | 17 | Refer to the following three 18 | 19 | My Way of WafBypass (SQL Injection)
20 | My Way of WafBypass (Upload)
21 | My Way of WafBypass (Misc)
22 | 23 | * Talk about the idea of ​​lifting the rights of Windows system and Linux system? 24 | 25 | * List all high-risk vulnerabilities of open source components that you know (more than ten) 26 | 27 | * Describe a CVE or POC that you have studied in depth. 28 | 29 | 30 | 31 | * SQLi 32 | * How to judge sql injection, what are the methods? 33 | > Add single quotes, double quotes, order by, rlike, sleep, benchmark, operator, modify data type, error injection statement test 34 | 35 | * Introduce the cause of SQL injection vulnerabilities, how to prevent it? What are the injection methods? In addition to database data, what are the ways to use it? 36 | 37 | * The principle of wide character injection? How to use the wide character injection vulnerability, how to construct and repair the payload? 38 | > Popularly speaking, gbk, big5 and other codes account for two bytes. After the sql statement enters the backend, the single quotes are escaped. The escaped \ is %5C, and the current %xx and %5C can be combined into two. When the characters are in bytes, the subsequent single quotes can escape, resulting in injection. More common gbk, %df' => 39 | %df%5c%27 => 运'. Already single quotes, the rest is almost the same as normal injection. 40 | > Fix the way by setting the MYSQL database character set utf8mb4, PHP character set utf-8. 41 | 42 | * You all know which sql pass skills 43 | > This is too much, a lot of online search. Mainly depends on the filtering and protection of the target site. Common bypass can be /**/ replace spaces, /*!00000union*/ is equal to union, or use front-end filtering, add angle brackets <>. Cases are too common. If you filter functions or keywords, you can try other equivalent functions that can achieve results. Keywords such as or 1=1 can be replaced with ||1, or with operators such as /, %. The same effect. In short, still look at the requirements. 44 | 45 | 46 | * How does sqlmap inject an injection point? 47 | > If it is get type, directly, sqlmap -u "injection point URL". 48 | > 49 | > If it is post type, you can sqlmap -u "injection point URL" -data="post parameter" 50 | > 51 | > If it is a cookie type, X-Forwarded-For, etc., when you can access it, use Burpsuite to capture the package, replace it with the * mark, put it in the file, and then sqlmap -r "file address" 52 | 53 | * mysql website injection, what is the difference between 5.0 and below? 54 | > Below 5.0, there is no information_schema system table, can not list names, etc., can only violently run table names. 55 | > 5.0 is multi-user single operation, 5.0 or more is multi-user and multi-operation. 56 | 57 | * mysql injection point, use the tool to write a sentence directly to the target station, what conditions are needed? 58 | > root permissions and the absolute path to the site. 59 | 60 | * There is a sql injection vulnerability in the following link. What ideas do you have for this variant injection? 61 | > demo.do?DATA=AjAxNg== 62 | 63 | * Found demo.jsp?uid=110 injection point, what kinds of ideas do you have to get webshell, which is the best? 64 | 65 | * Domain 66 | * Explain the same-origin policy 67 | > If the protocol of the two pages, the port and the domain name are the same, it can be considered to be homologous. 68 | 69 | * The same-origin strategy, those things are acquired by homology 70 | > read cookies, LocalStorage and IndexDB 71 | > read DOM elements 72 | > Send an AJAX request 73 | > 74 | * If the subdomain and the top-level domain have different sources, where can I set them to be homologous? 75 | > Probably the same subdomain, the main domain has different meanings, you can solve the cross-domain by setting document.domain in both rooms. 76 | * How to set up data that can be requested across domains? What does jsonp do? 77 | > When the primary domain is the same, cross-domain, you can set document.domain as above. 78 | > 79 | > When the primary domain is different, you can set up CORS on the server to make cross-domain requests through jsonp and websocket. H5 added the window.postMessage method to resolve cross-domain requests. 80 | > 81 | > Request json data via