0x00 前言
为了面试外企做准备的速背表,一定要精简,精简,再精简,每个概念尽量一到两句话进行速记
0x01 What is Penetration Testing?
Penetration testing is a type of security testing that is used to test the insecurity of an application. It is conducted to find the security risk which might be present in the system.
0x02 Penetration Testing Methodologies (seven steps)
Penetration Testing Execution Standard (PTES) defines penetration testing as 7 phases.
Pre-engagement Interactions
It includes gathering the required tools, OS, and software to start the penetration testing. In addition, there are some basic tools that are required to complete penetration testing with expected results.Intelligence Gathering (Information Gathering)(DNS,IP,Email,Google hacking,etc…)
The data is collected to help in completing the assessment actions. The information is gathered using a process that helps us to get access to any information that is relevant to the target.
tools: |
Threat Modeling
Threat modeling allows you to strengthen network security by tracking the vulnerabilities and then defining measures to prevent or reduce the effect of the threat.Vulnerability Analysis(Scanning,manual testing)
Identification: Vulnerabilities are discovered
Validation: Validate the identified vulnerabilities
tools: |
- Exploitation
The identified vulnerabilities are exploited to breach the security
tools: |
- Post Exploitation
In this phase, the compromised machine’s value is determined by the sensitivity of the data stored on it. It also evaluates the machine usefulness in further exploiting the network.
tools: |
- Reporting
The findings are reported in a way that is easily understandable.
0x03 Web Vulnerability
What is SQLinjection attack
A SQL injection attack consists of insertion or “injection” of a SQL query via the input data from the client to the application. A successful SQL injection exploit can read sensitive data from the database, modify database data (Insert/Update/Delete), execute administration operations on the database (such as shutdown the DBMS), recover the content of a given file present on the DBMS file system and in some cases issue commands to the operating system. SQL injection attacks are a type of injection attack, in which SQL commands are injected into data-plane input in order to effect the execution of predefined SQL commands.
- In-band SQLi (Classic SQLi):Error-based SQLi and Union-based SQLi.
- Inferential SQLi (Blind SQLi):Boolean-based (content-based) Blind SQLi and Time-based Blind SQLi
What is Cross-site Scripting (XSS) attack
Cross-Site Scripting (XSS) attacks are a type of injection, in which malicious scripts are injected into otherwise benign and trusted web sites. XSS attacks occur when an attacker uses a web application to send malicious code, generally in the form of a browser side script, to a different end user. Flaws that allow these attacks to succeed are quite widespread and occur anywhere a web application uses input from a user within the output it generates without validating or encoding it.
- Reflected XSS Attacks
- Stored XSS Attacks
- DOM Based XSS
OWASP top 10 2017
Top 10
A1:2017-Injection (SQL, LDAP, XPath, or NoSQL queries, OS commands, XML parsers, SMTP headers, expression languages, and ORM queries.)
A2:2017-Broken Authentication
A3:2017-Sensitive Data Exposure
A4:2017-XML External Entities (XXE) Any of the XML processors in the application or SOAP based web services has document type definitions (DTDs) enabled.
A5:2017-Broken Access Control
A6:2017-Security Misconfiguration
A7:2017-Cross-Site Scripting (XSS)
A8:2017-Insecure Deserialization
A9:2017-Using Components with Known Vulnerabilities
A10:2017-Insufficient Logging&Monitoring
0x04 Check list & testing case
- input validation (sql injection,xss,os command,LDAP,path manipulation,file upload,header injection,xml injection)
- information disclosure (error handling,code comments,platform information disclosure,)
- Authentication (Credentials in plant text,Captcha is not random,SSO,broken authentication,username and password can be enumerated)
- password management(hard code password…)
- session management(timeout,fixation,not terminate,flag for secure and httponly)
- Authoriztion(privilege escalation)
- logging/Auditing (sensitive data logged)
- Configuration (Network device misconfig,Firewall misconfig)
- Logic error(bypass security control)
- Web service(SOAP , restful)
- Json(Json hijacking )
05 Question for the interviewee
- Could you pls introduce the daily work for this position ?
- Could you pls introduce the team structure ?
- What pentest tooling was using in the daily work and do the team purchase any license for the tools ?