最近是春招+校招,还有部分HW的师傅也在准备面试,在这里给大家准备了一些渗透测试面试常见的问题,帮助大家归类一下知识,方便师傅们查漏补缺,大家关注不迷路,与诸位共勉
目录
1、什么是sql注入
SQL 注入是因为前端输入控制不严格造成的漏洞,使得攻击者可以输入对后端数据库有危害的字符串或符号,使得后端数据库产生回显或执行命令,从而实现对于数据库或系统的入侵
接收用户输入的数据,没有过滤或者过滤布严谨,被带入到数据库中去执行(简)
2、sql注入产生的原因/条件
1、用户对sql查询语句参数可控
2、原本程序要执行的SQL语句,拼接了用户输入的恶意数据
3、sql注入的常见类型有哪些
1、按照注入点类型来分
a、数字型注入
b、字符型注入
c、搜索型注入
2、按照提交类型来分
a、GET注入
b、POST注入
c、COOKIE注入
d、HTTP头部注入
3、按照技巧分类的话
a、联合注入
b、堆叠注入
c、报错注入
4、按有没有回显
a、布尔盲注
b、时间盲注
4、sql注入有哪些绕过方法
1.大小写绕过注入
2.双写绕过注入
3.编码绕过注入
4.内联注释绕过注入
5、sql注入的危害
1.获取数据库数据
数据库中存放的用户的隐私信息的泄露,脱取数据库中的数据内容(脱库),可获取网站管理员帐号、密码悄无声息的进行对网站后台操作等。
2.网页篡改
通过操作数据库对特定网页进行篡改,严重影响正常业务进行与受害者信誉。
3.网页挂马
将恶意文件或者木马下载链接写入数据库,修改数据库字段值,进行挂马攻击。
4.篡改数据库数据
攻击数据库服务器,篡改或者添加普通用户或者管理员帐号。
5.获取服务器权限
列取目录、读取、写入shell文件获取webshell,远程控制服务器,安装后门,经由数据库服务器提供的操作系统支持,让攻击者得以修改或控制操作系统。
6、预防sql注入的方法和原理
1.预编译(数据库不会将参数的内容视为SQL命令执行,而是作为一个字段的属性值来处理)
2.PDO预处理 (本地和Mysql服务端使用字符集对输入进行转义)
3.正则表达式过滤 (如果用户输入了非法信息则利用正则表达式过滤)
7、xss漏洞原理
攻击者在Web页面中注入恶意的Script代码,当用户浏览该网页时,嵌入的Script代码会被执行,从而达到攻击的目的
8、xss漏洞分类
1、反射型XSS
2、存储型XSS
3、DOM型XSS
9、xss漏洞的危害有哪些
1、窃取cookie
2、抓取屏幕截图
3、获取键盘记录
4、重定向
5、植入广告,恶意链接
6、网页钓鱼
7、网页挂马
8、结合网页挂马或者其他工具(Metasploit)获取服务器或者操作系统权限
10、xss的绕过方法有哪些
1. 大小写转换;
2. 引号的使用;
3. 使用 / 代替空格;
4. 编码绕过(将字符进行十进制或者十六进制转码);
5.双写绕过;
6.使用制表符 换行符和回车符
7.使用 IMG 源
11、xss的防范措施有哪些
1、对用户的输入进行过滤
比如说添加黑名单或者白名单规则,比如说对& " ' / javascript import等敏感字符进行转义
2、使用 HttpOnly Cookie
如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样可以有效的防止XSS攻击窃取cookie。
3、设置X-XSS-Protection属性
该属性被所有的主流浏览器默认开启。X-XSS-Protection,即XSS保护属性,是设置在响应头中目的是用来防范XSS攻击的。在检查到XSS攻击时,停止渲染页面。
4、开启CSP网页安全策略
CSP是网页安全策略(Content Security Policy)的缩写。开启策略后可以起到以下作用:禁止加载外域代码,防止复杂的攻击逻辑;禁止外域提交,网站被攻击后,用户的数据不会泄露到外域;禁止内联脚本执行(规则较严格,目前发现 GitHub 使用);禁止未授权的脚本执行(新特性,Google Map 移动版在使用)。合理使用上报可以及时发现 XSS,利于尽快修复问题。
5、避免内联事件
尽量不要使用 onLoad=“onload(’{{data}}’)”、onClick=“go(’{{action}}’)” 这种拼接内联事件的写法。在 JavaScript 中通过 .addEventlistener() 事件绑定会更安全。
6、使用模板引擎
开启模板引擎自带的 HTML 转义功能。例如: 在 ejs 中,尽量使用 而不是 ; 在 doT.js 中,尽量使用 {{! data } 而不是 {{= data }; 在 FreeMarker 中,确保引擎版本高于 2.3.24。
12、响应码及其对用的含义
1xx:信息提示。表示请求已接收,继续处理。
2xx:成功。表示请求已成功被服务器接收、理解、并接受。
200:成功响应。请求已成功被服务器处理后,返回的结果。
201:已创建。请求成功创建资源。
202:已接受。一种用于表示一个操作已被接受的系统回应。
3xx:重定向。表示需要采取进一步的操作才能完成请求。重定向到不同的资源页面可能会有所不同。
301:永久移动。资源位置被永久地移动到了新的地址,并且未来对当前资源的引用将指向新的位置。
302:临时移动。临时性地移动了资源到另一个位置,原始资源仍然可用。
4xx:客户端错误。表示请求包含错误或无法被服务器理解,应由客户端处理。
400:错误请求。请求有语法错误,服务器无法理解请求的格式。
401:未授权请求。请求未经授权,服务器可能要求进行身份验证。
403:禁止访问。服务器配置阻止了请求访问资源,通常由于权限问题。
404:资源未找到。请求的资源未被找到或无法被找到,通常表示请求的URL路径错误或不存在。
5xx:服务器错误。表示服务器在处理请求时发生错误,应由服务器处理。
500:服务器内部错误。服务器在处理请求时发生了某些内部错误。
503:服务不可用。服务器当前暂时无法使用,可能会暂时过载或正在进行维护。
13、常见端口及其对应的服务与利用
端口:21 服务:FTP/TFTP/VSFTPD 利用:爆破/嗅探/溢出/后门
端口:22 服务:ssh远程连接 利用:爆破/openssh漏洞
端口:23 服务:Telnet远程连接 利用:爆破/嗅探/弱口令
端口:25 服务:SMTP邮件服务 利用:邮件伪造
端口:53 服务:DNS域名解析系统 利用:域传送/劫持/缓存投毒/欺骗
端口:67/68 服务:dhcp服务 利用:劫持/欺骗
端口:110 服务:pop3 利用:爆破/嗅探
端口:139 服务:Samba服务 利用:爆破/未授权访问/远程命令执行
端口:143 服务:Imap协议 利用:爆破161SNMP协议爆破/搜集目标内网信息
端口:389 服务:Ldap目录访问协议 利用:注入/未授权访问/弱口令
端口:445 服务:smb 利用:ms17-010/端口溢出
端口:512/513/514 服务:Linux Rexec服务 利用:爆破/Rlogin登陆
端口:873 服务:Rsync服务 利用:文件上传/未授权访问
端口:1080 服务:socket 利用:爆破
端口:1352 服务:Lotus domino邮件服务 利用:爆破/信息泄漏
端口:1433 服务:mssql 利用:爆破/注入/SA弱口令
端口:1521 服务:oracle 利用:爆破/注入/TNS爆破/反弹shell2049Nfs服务配置不当
端口:2181 服务:zookeeper服务 利用:未授权访问
端口:2375 服务:docker remote api 利用:未授权访问
端口:3306 服务:mysql 利用:爆破/注入
端口:3389 服务:Rdp远程桌面链接 利用:爆破/shift后门
端口:4848 服务:GlassFish控制台 利用:爆破/认证绕过
端口:5000 服务:sybase/DB2数据库 利用:爆破/注入/提权
端口:5432 服务:postgresql 利用:爆破/注入/缓冲区溢出
端口:5632 服务:pcanywhere服务 利用:抓密码/代码执行
端口:5900 服务:vnc 利用:爆破/认证绕过
端口:6379 服务:Redis数据库 利用:未授权访问/爆破
端口:7001/7002 服务:weblogic 利用:java反序列化/控制台弱口令
端口:80/443 服务:http/https 利用:web应用漏洞/心脏滴血
端口:8069 服务:zabbix服务 利用:远程命令执行/注入
端口:8161 服务:activemq 利用:弱口令/写文件
端口:8080/8089 服务:Jboss/Tomcat/Resin 利用:爆破/PUT文件上传/反序列化
端口:8083/8086 服务:influxDB 利用:未授权访问
端口:9000 服务:fastcgi 利用:远程命令执行
端口:9090 服务:Websphere 利用:控制台爆破/java反序列化/弱口令
端口:9200/9300 服务:elasticsearch 利用:远程代码执行
端口:11211 服务:memcached 利用:未授权访问
端口:27017/27018 服务:mongodb 利用:未授权访问/爆破
14、常见数据库及其默认端口
一、关系型数据库
1、MySql数据库 ,默认端口是: 3306
2、Oracle数据库 ,默认端口号为:1521
3、Sql Server数据库 ,默认端口号为:1433
4、DB2数据库, 默认端口号为:5000
5、PostgreSQL数据库, 默认端口号为:5432
6、国产的DM达梦数据库, 默认端口号为:5236
二、NoSql数据库(非关系型数据库)
1.Redis数据库,默认端口号:6379
2.Memcached数据库,默认端口号:11211
3.MongoDB数据库,默认端口号:27017