赞
踩
攻击者冒充域名服务器的一种欺骗行为
原理:
当写入缓冲区的数据量超过该缓冲区所能承受的最大限度时,发生缓冲区溢出,溢出的数据被黑客加以利用,形成远程代码执行漏洞。
防御:
基于操作系统防御
缓冲区边界检查
安全编程
断网:条件允许时优先断网,防止黑客进一步操作或删除痕迹
取证:通过分析登录日志、网站日志、服务日志寻找黑客ip,查看黑客进行的操作
备份:备份服务器文件,对比入侵前后产生变化的文件
查漏:通过上述步骤寻找业务薄弱点,修补漏洞
杀毒:清除黑客留下的后门、webshell、管理账号
溯源:通过黑客ip地址,入侵手段等
记录:归档、预防
实名制联网 重要网段隔离 禁止接入任何USB设备
禁用WIFI网络 IP与MAC地址绑定
部署网络监控、IDS、IPS设备
定期培训,提高员工安全意识
安全测试:寻找产品漏洞,页面漏洞,服务漏洞,敏感信息泄露,逻辑漏洞,弱口令
性能测试:压力测试
功能完整性测试
限制IP白名单访问
使用WAF、IDS、防火墙设备
验证HTTP Referer字段
添加Token字段并验证
添加自定义字段并验证
WAF绕过:
修改上传表单字段
表单字段大小写替换
表单字段增加或减少空格
表单字段字符串拼接
构造双文件上传表单,同时上传双文件
编码绕过
垃圾数据填充绕过
文件名大小写绕过
服务器检测绕过:
MIME类型绕过
前端JS检测抓包改包绕过
黑名单绕过:php3、asa、ashx、windows特性(test.asp_、流特性)、apache解析漏洞
图片内容检测使用图片马绕过 .htassess绕过
白名单检测绕过:
截断上传绕过
IIS6/7/7.5解析漏洞,nginx低版本解析漏洞
文件包含绕过
验证码复用
验证码可识别
验证码失效
验证码DDOS
sql注入
xss
权限绕过
敏感信息泄露
任意用户密码重置
短信轰炸
订单金额修改
忘记密码绕过
恶意刷票
验证码复用
调用文件包含函数时,未严格限制文件名和路径,如include()、require()等函数
普通用户重置管理用户密码
普通用户重置普通用户密码
未设置用户唯一Token,导致越权
shell压缩上传,程序自解压getshell
尝试解析漏洞getshell
寻找文件包含漏洞
木马钓鱼管理员
aspx使用的是.net技术,IIS中默认不支持,ASPX需要依赖于.net framework,ASP只是脚本语言 入侵的时候asp的木马一般是guest权限APSX的木马一般是users权限
SQL注入、万能密码
暴力破解
权限绕过
目录扫描
敏感信息泄露
COOKIE注入
user-agent注入
X-Forwarded-For注入
Referer注入
水平越权:普通用户越权访问普通用户
垂直越权:普通用户越权访问管理用户
未授权访问:权限控制不严,导致无需登录访问已登录用户页面
xss有什么?执行存储型的xss的危害和原理
存储型、反射型、DOM型
存储型XSS是指应用程序通过Web请求获取不可信赖的数据,在未检验数据是否存在XSS代码的情况下,便将其存入数据库
存储型XSS危害:
窃取用户Cookie
XSS钓鱼攻击
XSS蠕虫攻击
获取键盘记录
获取用户信息
获取屏幕截图
主机疑似遭到入侵,要看哪里的日志
系统登录日志
服务访问日志
网站日志
数据库日志
python常用的标准库
正则表达式 re
时间模块 time
随机数 random
操作系统接口 os
科学计算 math
网络请求 urlib
http库 requests
爬虫库 Scrapy
多线程库 threading
reverse_tcp:攻击机设置一个端口和IP,Payload在测试机执行连接攻击机IP的端口,这时如果在攻击机监听该端口会发现测试机已经连接 白话就是让受控机主动连接我们
bind_tcp:攻击机设置一个端口(LPORT),Payload在测试机执行打开该端口,以便攻击机可以接入 白话就是我们主动连接受控机 使用reverse_tcp较为安全,一般不会被防火墙发现
oauth认证过程中可能会出现什么问题,导致什么样的漏洞?
CSRF
redirect_uri校验不严格
错误的参数传递
做了cdn的网站如何获取真实IP
全球ping
查询历史解析记录
探针文件如phpinfo等
利用命令执行连接我们的服务器或DNSlog
寻找网站配置
通过二级域名
全网扫描,title匹配
jsonp
CORS跨域资源共享
代理跨域请求
Html5 postMessage 方法
修改 document.domain 跨子域
基于 Html5 websocket 协议
http://document.xxx + iframe
jsonp浏览器支持较好,CORS不支持IE9及以下浏览器
jsonp只支持GET,CORS支持所有类型的HTTP请求 jsonp只发一次请求,复杂请求CORS发送两次
冒泡排序
选择排序
插入排序
本地文件读取
服务探测、端口扫描
攻击内网redis、mysql、fastcgi等服务
利用到的协议有:http/s、file、gopher、tftp、dict、ssh、telnet
常见后门方式?
Windows:
注册表自启动
shift后门
远控软件
webshell
添加管理用户
影子用户
定时任务
dll劫持
注册表劫持
MBR后门
WMI后门
管理员密码记录
Linux:
SSH后门
SUID后门
Crontab计划任务
PAM后门
添加管理员账号
Rootkit
使用命令执行函数绕过
使用symlink()函数绕过
glob伪协议绕过
参数拼接方式皆有可能产生SQL注入(老生常谈)
全局变量注册导致的变量覆盖
fwrite参数未过滤导致的代码执行
权限校验疏漏导致的后台功能访问
接口任意文件上传
unserialize反序列化漏洞
钓鱼、蜜罐、蚁剑RCE
临时任务:at、batch命令
web绝对路径写shell
写入ssh公钥获取服务器权限
主从复制getshell
加密算法置为空绕过身份验证
爆破弱密钥 kid参数:任意文件读取、SQL注入、命令注入
未校验签名,内容重新编码
JBoss反序列化
WebLogic反序列化
Tomcat任意文件写入、弱口令+后台getshell
SQL盲注
无回显的命令执行
XXE盲打
SSRF盲打
HTTP-Only禁止的是JS读取cookie信息,如何绕过这个获取cookie
劫持登录页面钓鱼绕过
这里只写常利用的漏洞
IIS:
IIS6.0 PUT漏洞
IIS6.0 远程代码执行漏洞
IIS6.0 解析漏洞 IIS启用.net 短文件名漏洞
IIS7.0/7.5 解析漏洞
Apache:
未知扩展名解析漏洞
配合错误导致的解析漏洞、目录遍历
Nginx:
配置错误导致的解析漏洞、目录遍历
Tomcat:
配置错误导致的任意代码执行、任意文件写入漏洞
弱口令+管理后台war包部署getshell manager/html
管理后台弱口令爆破
JBoss:
5.x/6.x反序列化漏洞(CVE-2017-12149)
JMXInvokerServlet反序列化
EJBInvokerServlet反序列化
JMX Console未授权访问
弱口令+管理后台war包部署getshell
WebLogic:
XMLDecoder 反序列化漏洞(CVE-2017-10271 & CVE-2017-3506)
wls9_async_response,wls-wsat 反序列化远程代码执行漏洞(CVE-2019-2725)
WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)
弱口令+管理后台war包部署getshell
谈一谈Windows系统与Linux系统提权的思路?
Windows:
数据库提权:mysql、sqlserver
第三方软件提权:serv-u DLL劫持
系统内核溢出漏洞提权:cve系列
Linux:
sudo提权
suid提权
redis 内核提权
python有哪些框架,其中出现过哪些漏洞
Django、Flask、Scrapy Django任意代码执行
Flask模板注入
小程序的渗透和普通渗透的差异
渗透过程不变,依旧是抓包修改参数渗透
不同点是小程序会将包下载到本地,可以使用逆向还原工具反编译
app本身的漏洞测试 四大组件
Activity组件:
activity绑定browserable与自定义协议
ActivityManager漏洞
Service组件:
权限提升,拒绝服务攻击
Broadcast Receiver组件:
权限管理不当
BroadcastReceiver导出漏洞
动态注册广播组件暴露漏洞
Content Provider组件:
读写权限漏洞
Content Provider中的SQL注入漏洞
Provider文件目录遍历漏洞
IDS/IPS防护原理及绕过思路
原理:
IDS工作在网络层,旁路部署,通过抓取和分析网络流量来发现攻击 IPS一般也是在网络层旁路,可以理解为具备阻断能力的IDS,是IDS的升级版(也有IDS检测到攻击通知阻断设备执行阻断动作的设备联动模式),可以覆盖网络层和应用层
绕过:
TCP分片:拆分出两个TCP包
IP分片:原理同TCP分片,但是丢包严重
程序bug/性能问题:发送大量无效包,消耗IPS性能
伪造TCP状态:绕过基于状态追踪的IPS
IPV6绕过:使用IPV6地址绕过
使用XMLHttpRequest、fetch构造出JSON请求,利用Flash的跨域与307跳转来绕过http自定义头限制
csrf json劫持 xss
学习网络安全需要具有一个扎实的计算机基础知识和网络基础知识,如果未来要从事网络安全领域的研发岗位,还需要具有一个扎实的数学基础。由于整体的知识量非常大,所以学习网络安全首先应该有一个自己的学习切入点,对于动手能力比较强的人来说,可以从网络基础知识开始学起,然后逐渐了解各种网络安全设备的相关知识。
先来看一张整体的路线图,初步了解下这个方向需要学习的知识有哪些
我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣。
来吧,话不多说,一起学起来,见证从青铜变身王者的旅程!
第一个阶段——石器时代,针对的是纯新手小白刚刚入场。在这个阶段,主要是打基础,需要学习的有五部分内容:
Windows
Windows上基础的一些命令、PowerShell的使用和简单脚本编写,以及Windows以后经常会打交道的几个重要组件的使用:注册表、组策略管理器、任务管理器、事件查看器等。
除此之外,学习在Windows上面搭建虚拟机,学会安装系统,为接下来学习Linux做准备工作。
Linux
网络安全,必然要与Linux经常打交道,我看到很多新人一上来就跟着一些培训班学习Kali,学的云里雾里的。连基本的Linux概念都没建立起来,就急着学Kali,这属于还没学会走路就去学跑步,本末倒置了。
在基础阶段,主要以使用为主,学习文本编辑、文件、网络、权限、磁盘、用户等相关的命令,对Linux有一个基本的认知。
网络安全,计算机网络肯定是非常重要的存在。作为基础阶段,这一小节主要从宏观上学习计算机网络,而不是死扣某一个协议的某些字段意义。
首先从局域网出发,了解计算机通信的基本网络——以太网,局域网内是如何通信的?集线器、交换机有什么区别?MAC地址、IP地址、子网、子网掩码分别是做什么用的?
随后引出更大的广域网、互联网,什么是网络通信协议,通信协议分层的问题,通过七层和四层模型快速建立起计算机网络的基础概念,各层协议的作用,分别有哪些协议,这些协议在当今的互联网中具体是怎么应用的。
网络渗透中非常重要的一个组成部分就是Web安全,要学习Web安全,得先从Web前端基础开始入手。
这一小节非常简单,就是学习最原始的Web前端三板斧:HTML+CSS+JS的开发使用,为将来学习Web相关的安全知识打下基础。
这一小节是相对偏实际动手多一些,需要自己多动手进行一些网页编程,尤其是JavaScript的熟悉掌握,了解Ajax是什么东西,常用的jQuery库也学习一下,这都是Web前端中非常基础和常用的内容。
基础阶段的最后一部分,可以来接触一些数据库的基础知识了。
这个阶段主要学一些理论知识,重点掌握库、表、索引等概念,然后学习SQL的编写,学会增删改查数据。暂时不用编程来操作数据库。
度过了石器时代,你已经储备了一些计算机的基础知识:操作系统的使用,网络协议,前端基础,数据库初识,但这距离做网络安全还不够,在第二个青铜阶段,你还需要再进一步学习基础,在第一阶段之上,难度会开始慢慢上升。
这一阶段需要学习的知识有:
在前面的石器时代,咱们初步接触了网页编程,了解了网页的基本原理。不过那时候是纯前端的,纯静态的网页,没有接触后端。在这个进阶的阶段,你要开始接触Web后端的内容了。
首先从常用的两大主流Web服务器出发,学习Apache和Linux的基本知识,随后引出动态网页的基本原理,从CGI/Fast-CGI过渡到后来的ASP/PHP/ASPX/JSP等动态网页技术,了解它们的发展历史,演变过程和基础的工作原理。
最后再学习一些Web开发中的基础知识:表单的操作、Session/Cookie、JWT、LocalStorage等等,了解这些基本的术语都是什么意思,做什么用,解决了什么。
学习Web后端开发,得搭配学习一个后端开发语言才行。在这一小节,选择从PHP入手。
不过要记住,这里选择PHP不是让你以后从事PHP的后端开发,也不是说PHP现在有多流行,而是特定历史背景下,PHP相关的网站安全问题非常具有代表性,选择这门语言更方便我们研究安全问题。
由于学习的目的不同,所以在学习方法上和普通的后端开发就有所不同了。在这里咱们学习一下语法基础,基本的后端请求处理,数据库访问,然后再接触一下常用的ThinkPHP框架即可,当然如果你有兴趣,学的更深入当然更好。
第二阶段需要再充实一下计算机网络的学习。这一次,重点把精力放在HTTP/HTTPS以及抓包分析之上。
Linux上的tcpdump必须掌握,包括常见的参数配置。然后重点学习Wireshark分析数据包,用Fiddler抓取分析加密的HTTPS流量。
通过在抓包软件下查看通信流量,对计算机网络的认识从抽象变得具象。
接着,来了解一些网络安全领域内经常打交道的编解码技术和加解密技术。包括base64编码、对称加密、非对称加密、哈希技术等等。
了解它们基础的概念、做什么用的,解决什么问题,最后再了解下工作原理。
推荐书籍:《加密与解密》
现在进入第三个阶段——白银时代,激动人心的时刻就要到来了,在这个阶段,我们开始全面学习真正的网络安全技术了,前面两个阶段打下的基础,在这个阶段,也将派上用场。
这一阶段需要学习的知识有:
有了前面的Web前端和PHP编程的基础,可以来正式学习Web安全了。Web安全领域内几大典型的攻击手法:SQL注入、XSS、CSRF、各种注入、SSRF、文件上传漏洞等等,每一个都需要详细学习,一边学习理论,一边动手实践。
千万注意别拿互联网上的网站来攻击学习,这是违法的行为。自己可以在虚拟机中搭建一些包含漏洞的网站(网络上有很多可以下载来玩),拿自己建的网站练手。
前面学习了一些Web安全的攻击手法,但光有这些还不够,当我们面对攻击目标后,如何寻找攻击点,获取目标的信息至关重要。
这些信息包括:目标运行了什么操作系统,开放了哪些端口,运行了哪些服务,后端服务是什么类型,版本信息是什么等等,有哪些漏洞可以利用,只有获取到了这些信息,才能有针对性的制定攻击手段,拿下目标。
常见的网络信息扫描包括端口扫描、网站后台扫描、漏洞扫描等等。需要学习常用的扫描工具以及它们的工作原理。
除了上面需要扫描的信息,在网络安全中,经常还需要调研很多信息,比如网站的注册信息、相关联的人物、网站内部的内容检索等等。这就需要学习掌握信息搜集和社会工程学的相关技术。
whois信息用来查询域名信息,shodan、zoomeye、fofa等网络空间搜索引擎检索IP、域名、URL等背后的信息,Google Hacking利用搜索引擎来检索网站内部信息,这些东西都是在网络信息搜集中经常用到的技能。
在网络攻击中,当扫描到目标开放的服务后,最直接的就是想要登录进去。常见的服务有SSH、RDP、MySQL、Redis、Web表单等等。
这个时候,暴力破解通常会派上用场,通过使用各种服务常见用户名密码组成的字典,通过程序暴力破解。
常用的爆破工具有hydra、超级弱口令,另外还有一个mimikatz,常用来获取Windows系统的密码。
上一个阶段,学习了一些安全攻击技术,在这一个阶段,需要学习一下安全防御和安全检测技术,安全具有攻防两面性,缺一不可。
首先要学习的就是WAF——Web应用防火墙。
Web安全学习的是通过Web技术攻击计算机系统,WAF就是检测和防御这些安全攻击。正所谓知己知彼才能百战百胜,作为攻方,要掌握WAF的工作原理,找到弱点绕过检测,作为守方,需要不断加强安全检测和防御能力,有效的发现和抵御Web攻击。
需要学习当下主流的WAF软件所采用的架构比如openresty、modsecurity,以及主要的几种检测算法:基于特征的、基于行为的、基于机器学习的等等。
WAF主要针对的是Web相关的安全攻击,到这一小节,将视野进一步拓展到整个网络协议栈,TCP劫持、DNS劫持、DDoS攻击、DNS隧道、ARP欺骗、ARP泛洪等等,需要掌握这些传统经典攻击手段的原理,搭建环境实践,为后续的内网渗透打下基础。
另外作为防守的一方,还需要学习通过网络流量分析技术来进行安全检测,了解常用的网络分析技术,检测框架,规则语法,对以后从事安全相关开发或安全防御工作进行储备。
通过日志来发现攻击行为是一种最常见的行为,攻击者的Web请求,系统登录,暴力破解尝试等等都会被系统各种软件记录在案,攻击者得手后也经常会抹除相关的日志记录,所以学习掌握这些日志,是攻防两队的人都需要学习的技能。
常见的日志有系统登录日志(Windows、Linux)、Web服务器日志、数据库日志等等。
在这个阶段,是时候来学习一些Python编程开发了。虽然网络安全不用经常做大量的工程开发,但掌握基本的编程能力,可以用来编写爬虫、数据处理、网络扫描工具、漏洞POC等等,都是非常有用的,而众多编程语言中,Python无疑是最适合的。
这个阶段的最后一部分,来学习了解一些浏览器侧的安全知识,夯实Web安全中与浏览器相关的漏洞攻击。
需要重点掌握IE、Chrome两款最主流的浏览器特性,浏览器的沙盒机制是什么,同源策略和跨域技术等等。
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。