网络安全面试
owasp top10
1.失效的访问控制
2.加密机制失效
3.注入(包括跨站脚本攻击XSS和SQL注入等)
4.不安全设计
5.安全配置错误
6.自带缺陷和过时的组件
7.身份识别和身份验证错误
8.软件和数据完整性故障
9.安全日志和监控故障
10.服务端请求伪造SSRF
sql注入
原理
用户的可控的输入嵌入到sql语句中并被服务端执行,导致应用程序的信息泄露以及攻击者写入webshell
分类
请求头的注入、联合查询注入、报错注入、布尔盲注、堆叠注入、时间盲注 、宽字节注入
防御
使用预编译;
黑名单:对特殊的字符例如括号斜杠进行转义过滤删除;
白名单:对用户的输入进行正则表达式匹配限制;
规范编码以及字符集,否者攻击者可以通过编码绕过检查;
参数化查询。
宽字节注入
由于PHP utf-8编码 数据库GBK编码,PHP发送请求到mysql时经过一次gbk编码,因为GBK是双字节编码,所以我们提交的%df这个字符和转译的反斜杠组成了新的汉字,然后数据库处理的时候是根据GBK去处理的,然后单引号就逃逸了出来
xss注入
原理
攻击者在Web页面中注入恶意的Script代码,当用户浏览该网页时,嵌入的Script代码会被执行,从而达到攻击的目的。
类型
反射型XSS 存储型XSS DOM型XSS
绕过方法
大小写转换;
引号的使用;
使用 / 代替空格;
编码绕过(将字符进行十进制或者十六进制转码);
双写绕过;
使用制表符、换行符和回车符
使用 IMG 源
危害
- 窃取cookie
- 抓取屏幕截图
- 获取键盘记录
- 重定向
- 植入广告,恶意链接
- 网页钓鱼
- 网页挂马
防范措施
对用户的输入进行过滤,白名单,黑名单规则。
使用 HttpOnly Cookie
设置X-XSS-Protection属性
开启CSP网页安全策略
避免内联事件
使用模板引擎
CSRF漏洞
类型
GET类型,POST类型
危害
盗用其他用户或者管理员的账号
获取个人隐私或者机密资料
联合其他漏洞组合拳
防范措施
验证码验证
在请求地址中添加 token 并验证
验证 HTTP头的Referer 字段
HTTP 头中自定义属性并验证
SSRF漏洞
存在位置
分享:通过URL地址分享网页内容
转码服务
在线翻译
图片加载与下载:通过URL地址加载或下载图片
图片、文章收藏功能
未公开的api实现以及其他调用URL的功能
绕过手法
- 利用@绕过限制白名单域名
- 绕过限制白名单内网IP
- 绕过限制请求http协议
危害
- 对外网、服务器所在内网、本地进行端口扫描
- 向内部任意主机的任意端口发送payload来攻击内网服务
- DOS攻击(请求大文件,始终保持连接Keep-Alive Always)
- 攻击内网的web应用,如直接SQL注入、XSS攻击等
- 利用file、gopher、dict协议读取本地文件、执行命令等
- 可以无视网站CDN
防范措施
- 禁止跳转
- 过滤返回的信息
- 统一错误信息
- 限制请求的端口
- 禁止除HTTP和HTTPS外的协议
- 对请求地址设置白名单或者限制内网IP
XXE漏洞
如何构建XXE攻击
- 直接通过DTD外部实体声明
- 通过DTD文档引入外部DTD文档,再引入外部实体声明
- 通过DTD外部实体声明引入外部实体声明
危害
- 任意文件读取
- 系统命令执行
- 执行远程代码
- DOS拒绝服务攻击
- 内网端口探测
- 攻击内网网站
- 钓鱼
防范
- 禁用外部实体的引入
- 过滤如SYSTEM等敏感关键字,防止非正常、攻击性的外部实体引入操作。
文件上传漏洞
原理
Web页面中文件上传功能没有对上传的文件做合理严谨的过滤,导致用户可以利用此功能,上传能被服务端解析执行的文件,并通过此文件获得执行服务端命令的能力。
绕过方法
- 前端JS禁用绕过
- 简单修改后缀名绕过
- 抓包修改MIME类型
- 后缀名大小写绕过
- 图片马绕过
- %00,0x00截断
- .htaccess文件绕过
- .user.ini.绕过
- 条件竞争绕过
- ::$DATA绕过
- +空格+点绕过
- 后缀名双写绕过
- 特殊可解析后缀绕过
危害
上传webshell,控制服务器、远程命令执行
上传系统病毒、木马文件进行挖矿、僵尸网络
进行提权操作
修改web页面,实现钓鱼、挂马等操作。
进行内网渗透。
监测点
- 客户端的JS检测(主要检测文件名后缀)
- 服务端检测(MINE类型检测、文件后缀名、文件格式头)
防范措施
文件上传的目录设置为不可执行
严格判断文件类型
使用随机数修改文件名和文件路径
单独设置文件服务器的域名
内容检测
安全加固中间件
采用WAF等安全防护设备
1.检测网站流程
A.信息收集
- whois,社工库,社交帐号关联
- 查询旁站
- 查询服务器版本
- 查看ip
- 扫描目录结构
B.漏洞扫描
开始检测漏洞,如XSS,XSRF,sql注入,代码执行,命令执行,越权访问,目录读取,任意文件读取,下载,文件包含,远程命令执行,弱口令,上传,编辑器漏洞,暴力破解等
C.漏洞利用
拿到webshell或其他权限
D.权限提升
提权服务器,比如windows下mysql的udf提权,serv-u提权,windows低版本的漏洞,如iis6,pr,巴西烤肉,linux脏牛漏洞,linux内核版本漏洞提权,linux下的mysql system提权以及oracle低权限提权
e.日志清理
f.总结报告及修复方案
2.如何手工快速判断目标站是windows还是linux服务器?
linux大小写敏感,windows大小写不敏感。
3..htaccess文件
htaccess文件时Apache服务中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮助我们实现:网页301重定向、自定义404错误页面,改变文件扩展名、允许/阻止特定的用户或者目录的访问,禁止目录列表,配置默认文档等功能
其中.htaccess文件内容:SetHandler application/x-http-php的意思是设置当前目录所有文件都使用php解析,那么无论上传任何文件,只要符合php语言代码规范,就会被当做PHP执行。不符合规则则报错
4.CSRF 和 XSS 和 XXE 有什么区别,以及修复方式?
XSS是跨站脚本攻击,用户提交的数据中可以构造代码来执行,从而实现窃取用户信息等攻击。修复方式:对字符实体进行转义、使用HTTP Only来禁止JavaScript读取Cookie值、输入时校验、浏览器与Web应用端采用相同的字符编码。
CSRF是跨站请求伪造攻击,XSS是实现CSRF的诸多手段中的一种,是由于没有在关键操作执行时进行是否由用户自愿发起的确认。修复方式:筛选出需要防范CSRF的页面然后嵌入Token、再次输入密码、检验Referer XXE是XML外部实体注入攻击,XML中可以通过调用实体来请求本地或者远程内容,和远程文件保护类似,会引发相关安全问题,例如敏感文件读取。修复方式:XML解析库在调用时严格禁止对外部实体的解析。
5.常见的未授权访问漏洞有哪些?
- MongoDB未授权访问漏洞
- Redis未授权访问漏洞
- Memcached未授权访问漏洞
- JBOSS未授权访问漏洞
- VNC未授权访问漏洞
- Docker未授权访问漏洞
- ZooKeeper未授权访问漏洞
- Rsync未授权访问漏洞
6.应急响应的思路?
- 信息收集
- 阻断攻击行为
- 进行数据保护
- 安全事件影响根除
- 恢复业务
7.溯源反制的思路
a.攻击源捕获
- 安全设备报警,如扫描IP、威胁阻断、病毒木马、入侵事件等
- 日志与流量分析,异常的通讯流量、攻击源与攻击目标等
- 服务器资源异常,异常的文件、账号、进程、端口,启动项、计划任务和服务等
- 邮件钓鱼,获取恶意文件样本、钓鱼网站 URL 等
- 蜜罐系统,获取攻击者 ID、电脑信息、浏览器指纹、行为、意图的相关信息
b.溯源反制
- IP 定位技术
根据IP定位物理地址–代理 IP
溯源案例:通过 IP 端口扫描,反向渗透服务器进行分析,最终定位到攻击者相关信息 - ID 追踪术
ID 追踪术,搜索引擎、社交平台、技术论坛、社工库匹配
溯源案例:利用 ID 从技术论坛追溯邮箱,继续通过邮箱反追踪真实姓名,通过姓名找到相关简历信息 - 网站 url
域名 Whois 查询–注册人姓名、地址、电话和邮箱 –域名隐私保护
溯源案例:通过攻击 IP 历史解析记录/域名,对域名注册信息进行溯源分析 - 恶意样本分析
提取样本特征、用户名、ID、邮箱、C2 服务器等信息–同源分析
溯源案例:样本分析过程中,发现攻击者的个人 ID 和 QQ,成功定位到攻击者 - 社交账号
基于 JSONP 跨域,获取攻击者的主机信息、浏览器信息、真实 IP 及社交信息等
利用条件:可以找到相关社交网站的 jsonp 接口泄露敏感信息,相关网站登录未注销
c.攻击者画像
- 攻击路径
攻击目的:拿到权限、窃取数据、获取利益、DDOS 等
网络代理:代理 IP、跳板机、C2 服务器等
攻击手法:鱼叉式邮件钓鱼、Web渗透、水坑攻击、近源渗透、社会工程等
- 攻击者身份画像
虚拟身份:ID、昵称、网名
真实身份:姓名、物理位置
联系方式:手机号、qq/微信、邮箱
组织情况:单位名称、职位信息