护网
基础篇
讲一下TOP10有哪些?
1.失效的访问控制
2.加密机制失效
3.注入(包括跨站脚本攻击XSS和SQL注入等)
4.不安全设计
5.安全配置错误
6.自带缺陷和过时的组件
7.身份识别和身份验证错误
8.软件和数据完整性故障
9.安全日志和监控故障
10.服务端请求伪造SSRF
常见的端口和相关的服务?
服务 |
端口号 |
说明 |
FTP |
20 |
FTP服务器真正传输所用的端口,用于上传、下载 |
FTP |
21 |
用于FTP的登陆认证 |
SSH、SFTP |
22 |
加密的远程登录,文件传输 |
Telnet |
23 |
远程登录(在本地主机上使用此端口与远程服务器的22/3389端口连接) |
SMTP |
25 |
用于发送邮件 |
DNS |
53 |
域名解析 |
HTTP |
80 |
用于网页浏览 |
POP3 |
110 |
SUN公司的RPC服务所有端口 |
Network News Transfer Protocol |
119 |
NEWS新闻组传输协议,承载USENET通信 |
SMTP |
161 |
Simple Network Management Protocol,简单网络管理协议 |
SNMP Trap |
160、162 |
SNMP陷阱 |
HTTPS |
443 |
加密的网页浏览端口 |
CIFS |
445 |
公共Internet文件系统 |
sql server |
1433 |
Microsoft的SQL服务开放的端口 数据库 |
Oracle |
1521 |
数据库 |
NFS |
2049 |
通过网络,让不同的机器、不同的操作系统实现文件共享 |
MySQL |
3306 |
数据库 |
WIN2003远程登录 |
3389 |
Windows 2000(2003) Server远程桌面的服务端口,本地服务器开放此端口,去连接到远程的服务器 |
QQ· |
4000 |
腾讯QQ客户端开放此端口 |
redis· |
6379 |
数据库 |
WebLogic |
7001 |
一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器 |
Wingate |
8010 |
Wingate代理开放此端口 |
TOMCAT |
8080 |
WWW代理开放此端口 |
如何判断目标操作系统?
大小写检测:windows大小写不敏感,而linux大小写敏感。
PING指令:根据TTL值,winodws一般情况下>100,linux<100
正向代理和反向代理的区别?
正向代理即是客户端代理, 代理客户端, 服务端不知道实际发起请求的客户端
反向代理即是服务端代理, 代理服务端, 客户端不知道实际提供服务的服务端
正向shell和反向shell的区别?
正向Shell:攻击者连接被攻击者机器,可用于攻击者处于内网,被攻击者处于公网的情况。
反向Shell:被攻击者主动连接攻击者,可用于攻击者处于外网,被攻击者处于内网的情况。
序列化和反序列化的概念?
序列化:把对象转化为可传输的字节序列过程称为序列化。
反序列化:把字节序列还原为对象的过程称为反序列化。
信息收集具体收集什么信息
1.服务器的相关信息
真实IP,服务器操作系统及其版本,数据库类型及其版本,开放端口及其对应服务(常用端口扫描工具Nmap,Zenmap,Masscan等),WAF探测
2.网站相关信息
CMS(内容管理系统),web容器,web框架,CDN,web指纹识别(常用指纹识别工具潮汐指纹,云悉指纹,WhatWeb等),旁站和C段信息
3.域名相关信息
子域名,whois信息(查询域名的IP以及所有者等信息的传输协议),公司名称,注册人或者机构信息、公司或个人联系方式(邮箱,手机号码等信息),备案号
4.具体站点信息
漏洞扫描(常用漏扫工具Nessus,AppScan,AWVS,X-ray等),目录爆破(常用目录爆破工具dirsearch,dirb,dirbuster,ffuf等),robots.txt,
怎么验证是否存在CDN?
使用多地ping的服务,查看对应IP地址是否唯一,如果不唯一大概率就是存在CDN
使用nslookup命令检测,查看返回域名解析对应IP地址是否唯一,如果不唯一很可能存在CDN
怎么绕过CDN寻找真实ip?
1.查询历史DNS记录
查看IP和域名绑定的历史记录,利用站长工具,微步在线等网站说不定就能找到使用CDN之前的真实IP。
2.查询子域名
收集子域名信息,如果子域名对应的IP不存在CDN,就可以利用这些IP来辅助查找目标网站的真实IP
3.查询主域名
有些网站为了方便维护只让WWW域名使用CDN,把目标域名前面的WWW去掉ping一下说不定就是真实IP。
4.通过邮件服务器查找
一般邮件系统都在内部,没有经过CDN的解析,通过用户注册、找回密码以及RSS邮件订阅等功能接收目标网站发送的邮件,查看源码(或者信息头)就有可能得到目标网站真实IP。
5.使用国外主机解析域名
国内很多 CDN 厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实IP
6.网站漏洞查找
利用网站自身存在的漏洞,很多情况下会泄露服务器的真实IP地址
7.利用SSL证书寻找真实原始IP
证书颁发机构(CA)必须将他们发布的每个SSL/TLS证书发布到公共日志中,SSL/TLS证书通常包含域名、子域名和电子邮件地址。使用Censys等工具搜索目标网站信息。
8.F5 LTM解码法
当服务器使用F5 LTM做负载均衡时,通过对set-cookie关键字的解码真实ip也可被获取,例如:Set-Cookie: BIGipServerpool_8.29_8030=487098378.24095.0000,先把第一小节的十进制数即487098378取出来,然后将其转为十六进制数1d08880a,接着从后至前,以此取四位数出来,也就是0a.88.08.1d,最后依次把他们转为十进制数10.136.8.29,也就是最后的ip。
9.网络空间搜索引擎
根据网站特征或者响应内容特征等查找目标网站信息,当然也可以直接通过域名查找。
怎么验证找到的ip是否为真实ip?
使用端口扫描工具扫描开了哪些端口,然后结合开放的端口直接访问找到的IP,看看响应的页面是不是和访问域名返回的一样。
怎么建立隐藏用户?
net user test$ 123456 /add [建立隐藏用户]
net localgroup administrators test$ /add[将隐藏用户加入管理组]
判断网站的CMS有什么意义?
查找已曝光的漏洞。
如果开源,还能下载相应的源码进行代码审计。
根据CMS特征关联同CMS框架站点,进行敏感备份文件扫描,有可能获得站点备份文件。
数据包有哪些请求方式?
目前常用八种请求方式,分别是 GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、 CONNECT,get 和 post 最常用
漏洞篇题目
SQL注入的原理和产生原因?
SQL注入原理:
通过某种方式将恶意的sql代码添加到输入参数中,然后传递到sql服务器使其解析并执行的一种攻击手法
漏洞产生原因(实现条件):
用户对sql查询语句参数可控
原本程序要执行的SQL语句,拼接了用户输入的恶意数据
SQL注入的类型?
1.联合注入
2.堆叠注入
3.宽字节注入
4.cookie注入
5.XFF头注入
6.UA注入(user-agent注入)
7.Referer注入
8.二次注入
9.base64注入
10.万能密码
1.文件读写
盲注类型:
1.基于时间的盲注 sleep() benchmark()
2.基于布尔的注入
3.基于报错的注入
updatexml() extractvalue() floor() exp()
预防SQL注入的方法和原理?
1.预编译(数据库不会将参数的内容视为SQL命令执行,而是作为一个字段的属性值来处理)
2.PDO预处理 (本地和Mysql服务端使用字符集对输入进行转义)
3.正则表达式过滤 (如果用户输入了非法信息则利用正则表达式过滤)
SQL注入有哪些绕过方法?
1.大小写绕过注入
2.双写绕过注入
3.编码绕过注入
4.内联注释绕过注入
SQL注入有哪些危害?
1.获取数据库数据
数据库中存放的用户的隐私信息的泄露,脱取数据库中的数据内容(脱库),可获取网站管理员帐号、密码悄无声息的进行对网站后台操作等。
2.网页篡改
通过操作数据库对特定网页进行篡改,严重影响正常业务进行与受害者信誉。
3.网页挂马
将恶意文件或者木马下载链接写入数据库,修改数据库字段值,进行挂马攻击。
4.篡改数据库数据
攻击数据库服务器,篡改或者添加普通用户或者管理员帐号。
5.获取服务器权限
列取目录、读取、写入shell文件获取webshell,远程控制服务器,安装后门,经由数据库服务器提供的操作系统支持,让攻击者得以修改或控制操作系统。
XSS的原理和类型?
原理:攻击者在Web页面中注入恶意的Script代码,当用户浏览该网页时,嵌入的Script代码会被执行,从而达到攻击的目的。
类型:反射型XSS 存储型XSS DOM型XSS
XSS的绕过方法?
\1. 大小写转换;
\2. 引号的使用;
\3. 使用 / 代替空格;
\4. 编码绕过(将字符进行十进制或者十六进制转码);
5.双写绕过;
6.使用制表符 换行符和回车符
7.使用 IMG 源
XSS的危害?
窃取cookie
抓取屏幕截图
获取键盘记录
重定向
植入广告,恶意链接
网页钓鱼
网页挂马
结合网页挂马或者其他工具(Metasploit)获取服务器或者操作系统权限
XSS的防范措施?
对用户的输入进行过滤
比如说添加黑名单或者白名单规则,比如说对& “ ‘ / javascript import等敏感字符进行转义
使用 HttpOnly Cookie
如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样可以有效的防止XSS攻击窃取cookie。
设置X-XSS-Protection属性
该属性被所有的主流浏览器默认开启。X-XSS-Protection,即XSS保护属性,是设置在响应头中目的是用来防范XSS攻击的。在检查到XSS攻击时,停止渲染页面。
开启CSP网页安全策略
CSP是网页安全策略(Content Security Policy)的缩写。开启策略后可以起到以下作用:禁止加载外域代码,防止复杂的攻击逻辑;禁止外域提交,网站被攻击后,用户的数据不会泄露到外域;禁止内联脚本执行(规则较严格,目前发现 GitHub 使用);禁止未授权的脚本执行(新特性,Google Map 移动版在使用)。合理使用上报可以及时发现 XSS,利于尽快修复问题。
避免内联事件
尽量不要使用 onLoad=“onload(’’)”、onClick=“go(’’)” 这种拼接内联事件的写法。在 JavaScript 中通过 .addEventlistener() 事件绑定会更安全。
使用模板引擎
开启模板引擎自带的 HTML 转义功能。例如: 在 ejs 中,尽量使用 而不是 ; 在 doT.js 中,尽量使用