零基础如何入门网络安全(黑客)

在这里插入图片描述

怎么入门?

我们落到具体的技术点上来,网络安全学习路线,整体学习时间大概半年左右,具体视每个人的情况而定。

如果你把每周要学的内容精细化到这种程度,你还会担心学不会,入不了门吗,其实说到底就是学了两个月,但都是东学一下,西学一下,什么内容都是浅尝辄止,没有深入进去,所以才会有学了2个月,入不了门这种感受。

1、Web安全相关概念(2周)

熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等);通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google/SecWiki;阅读《精通脚本黑客》,虽然很旧也有错误,但是入门还是可以的;看一些渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等);

2、熟悉渗透相关工具(3周)

熟悉AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用;了解该类工具的用途和使用场景,先用软件名字Google/SecWiki;下载无后门版的这些软件进行安装;学习并进行使用,具体教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;待常用的这几个软件都学会了可以安装音速启动做一个渗透工具箱;

3、渗透实战操作(5周)

掌握渗透的整个阶段并能够独立渗透小型站点。 网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等);

自己找站点/搭建测试环境进行测试,记住请隐藏好你自己;思考渗透主要分为几个阶段,每个阶段需要做那些工作;研究SQL注入的种类、注入原理、手动注入技巧;研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等;研究XSS形成的原理和种类,具体学习方法可以Google/SecWiki;研究Windows/Linux提权的方法和具体使用;

4、关注安全圈动态(1周)

关注安全圈的最新漏洞、安全事件与技术文章;通过SecWiki浏览每日的安全技术文章/事件;通过Weibo/twitter关注安全圈的从业人员(遇到大牛的关注或者好友果断关注),天天抽时间刷一下;通过feedly/鲜果订阅国内外安全技术博客(不要仅限于国内,平时多注意积累),没有订阅源的可以看一下SecWiki的聚合栏目;养成习惯,每天主动提交安全技术文章链接到SecWiki进行积淀;多关注下最新漏洞列表,推荐几个:exploit-db、CVE中文库、Wooyun等,遇到公开的漏洞都去实践下。关注国内国际上的安全会议的议题或者录像,推荐SecWiki-Conference;

5、熟悉Windows/Kali Linux(3周)

学习Windows/Kali Linux基本命令、常用工具;熟悉Windows下的常用的cmd命令,例如:ipconfig,nslookup,tracert,net,tasklist,taskkill等;熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;熟悉Kali Linux系统下的常用工具,可以参考SecWiki《Web Penetration Testing with Kali Linux》、《Hacking with Kali》等;熟悉metasploit工具,可以参考SecWiki、《Metasploit渗透测试指南》;

6、服务器安全配置(3周)

学习服务器环境配置,并能通过思考发现配置存在的安全问题;Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限,;Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等;远程系统加固,限制用户名和口令登陆,通过iptables限制端口;配置软件Waf加强系统安全,在服务器配置mod_security等系统;通过Nessus软件对配置环境进行安全检测,发现未知安全威胁;

7、脚本编程学习(4周)

选择脚本语言Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库,推荐《Python核心编程》,不要看完;用Python编写漏洞的exp,然后写一个简单的网络爬虫;PHP基本语法学习并书写一个简单的博客系统,参见《PHP与MySQL程序设计(第4版)》、视频;熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选);了解Bootstrap的布局或者CSS;

8、源码审计与漏洞分析(3周)

能独立分析脚本源码程序并发现安全问题。熟悉源码审计的动态和静态方法,并知道如何去分析程序;从Wooyun上寻找开源程序的漏洞进行分析并试着自己分析;了解Web漏洞的形成原因,然后通过关键字进行查找分析;研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。

9、安全体系设计与开发(5周)

能建立自己的安全体系,并能提出一些安全建议或者系统架构。开发一些实用的安全小工具并开源,体现个人实力;建立自己的安全体系,对公司安全有自己的一些认识和见解;提出或者加入大型安全系统的架构或者开发; 

整点面试题给大伙儿看看

在这里插入图片描述

php爆绝对路径方法?

单引号引起数据库报错
访问错误参数或错误路径
探针类文件如phpinfo
扫描开发未删除的测试文件
google hacking
phpmyadmin报路径:/phpmyadmin/libraries/lect_lang.lib.php
利用漏洞读取配置文件找路径
恶意使用网站功能,如本地图片读取功能读取不存在图片,上传点上传不能正常导入的文件

你常用的渗透工具有哪些,最常用的是哪个?

burp、nmap、sqlmap、awvs、蚁剑、冰蝎、dirsearch、御剑等等

xss盲打到内网服务器的利用

钓鱼管理员
信息收集

鱼叉式攻击和水坑攻击?

鱼叉攻击:指利用木马程序作为电子邮件的附件,发送到目标电脑上,诱导受害者去打开附件来感染木马
水坑攻击:分析攻击目标的上网活动规律,寻找攻击目标经常访问的网站的弱点,将网站攻破并植入恶意程序,等待目标访问

什么是虚拟机逃逸?

利用虚拟机软件或者虚拟机中运行的软件的漏洞进行攻击,以达到攻击或控制虚拟机宿主操作系统的目的

中间人攻击?

原理:

在同一个局域网中,通过拦截正常的网络通信数据,并进行数据篡改和嗅探

防御:

在主机绑定网关MAC与IP地址为静态
在网关绑定主机MAC与IP地址
使用ARP防火墙

TCP三次握手过程?

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手

七层模型?

应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

对于云安全的理解

融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,传送到Server端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端

了解过websocket吗?

WebSocket是一种在单个TCP连接上进行全双工通信的协议,最大特点是服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话。

DDOS是什么?有哪些?CC攻击是什么?区别是什么?

DDOS:

分布式拒绝服务攻击,利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应
主要方式:
SYN Flood
UDP Flood
ICMP Flood
Connection Flood
HTTP Get
UDP DNS Query Flood

CC攻击:

模拟多个正常用户不停地访问如论坛这些需要大量数据操作的页面,造成服务器资源的浪费,CPU长时间处于100%,网络拥塞

两者区别:

CC攻击网页,DDOS攻击服务器,更难防御
CC门槛较低,DDOS需要大量服务器
CC持续时间长,DDOS产生的影响大

land攻击是什么?

局域网拒绝服务攻击,DDOS攻击的一种,通过发送精心构造的、具有相同源地址和目标地址的欺骗数据包,致使缺乏相应防护机制的目标设备瘫痪

你会如何进行信息收集?

服务器信息:ip、中间件、操作系统
域名whois、ipwhois、网段归属
子域名探测
网站目录扫描、接口信息扫描
端口扫描
各大引擎搜索相关信息

什么是CRLF注入攻击?

通过“回车”和“换行”字符注入HTTP流,实现网站篡改、跨站脚本、劫持等。

防止XSS,前端后端两个角度?

前端:

用户输入特殊字符过滤转义为html实体
用户输出编码

后端:

实体化编码
函数过滤
限制字符长度

如何防护一个端口的安全?

利用WAF、IDS、IPS等设备
危险服务端口禁止对外访问或限制IP访问
服务定期更新版本

webshell检测思路?

静态检测:匹配特征码,特征值,危险函数
动态检测:WAF、IDS等设备
日志检测:通过IP访问规律,页面访问规律筛选
文件完整性监控

GPC是什么?开启了怎么绕过

GPC:

php.ini配置文件中的magic_quotes_gpc,实现为get、post、cookie传入的单引号、双引号、反斜线、NULL字符添加反斜线\

绕过:

PHP5的GPC对$_SERVER的忽略,可在http请求头注入
二次注入
宽字节注入

web常用的加密算法有什么

单向散列加密 MD5、SHA、MAC
对称加密 AES、DES
非对称加密 RSA、RSA2

XSS除了获取cookies还能做什么?

获取管理员ip
xss蠕虫
钓鱼攻击
前端JS挖矿
键盘记录
屏幕截图

运营商(或其他)网络劫持

运营商劫持:广告投放
DNS劫持:通过各种手段篡改DNS,劫持网络

DNS欺骗是什么

攻击者冒充域名服务器的一种欺骗行为

缓冲区溢出原理和防御

原理:

当写入缓冲区的数据量超过该缓冲区所能承受的最大限度时,发生缓冲区溢出,溢出的数据被黑客加以利用,形成远程代码执行漏洞。

防御:

基于操作系统防御
缓冲区边界检查
安全编程

网络安全事件应急响应

断网:条件允许时优先断网,防止黑客进一步操作或删除痕迹
取证:通过分析登录日志、网站日志、服务日志寻找黑客ip,查看黑客进行的操作
备份:备份服务器文件,对比入侵前后产生变化的文件
查漏:通过上述步骤寻找业务薄弱点,修补漏洞
杀毒:清除黑客留下的后门、webshell、管理账号
溯源:通过黑客ip地址,入侵手段等
记录:归档、预防
企业内部安全

实名制联网
重要网段隔离
禁止接入任何USB设备
禁用WIFI网络
IP与MAC地址绑定
部署网络监控、IDS、IPS设备
定期培训,提高员工安全意识

业务上线前,怎么测试,从哪些角度测试

安全测试:寻找产品漏洞,页面漏洞,服务漏洞,敏感信息泄露,逻辑漏洞,弱口令
性能测试:压力测试
功能完整性测试

应用有漏洞,但是无法修复和停用,你怎么办

限制IP白名单访问
使用WAF、IDS、防火墙设备

CSRF怎么防护?

验证HTTP Referer字段
添加Token字段并验证
添加自定义字段并验证

文件上传绕过方法?

WAF绕过:

修改上传表单字段
表单字段大小写替换
表单字段增加或减少空格
表单字段字符串拼接
构造双文件上传表单,同时上传双文件
编码绕过
垃圾数据填充绕过
文件名大小写绕过

服务器检测绕过:

MIME类型绕过
前端JS检测抓包改包绕过
黑名单绕过:php3、asa、ashx、windows特性(test.asp_、流特性)、apache解析漏洞
图片内容检测使用图片马绕过
.htassess绕过

白名单检测绕过:

截断上传绕过
IIS6/7/7.5解析漏洞,nginx低版本解析漏洞
文件包含绕过

验证码相关利用点

验证码复用
验证码可识别
验证码失效
验证码DDOS

cookie你会测试什么内容

sql注入
xss
权限绕过
敏感信息泄露

说出几个业务逻辑漏洞类型?

任意用户密码重置
短信轰炸
订单金额修改
忘记密码绕过
恶意刷票
验证码复用

简述文件包含漏洞

调用文件包含函数时,未严格限制文件名和路径,如include()、require()等函数

业务逻辑漏洞,用户任意密码重置有什么例子,因为什么因素导致的?

普通用户重置管理用户密码
普通用户重置普通用户密码
未设置用户唯一Token,导致越权

渗透测试过程中发现一个只能上传zip文件的功能,有什么可能的思路?

shell压缩上传,程序自解压getshell
尝试解析漏洞getshell
寻找文件包含漏洞
木马钓鱼管理员

为什么aspx木马权限比asp大?

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 和 bind_tcp 的区别?

reverse_tcp:攻击机设置一个端口和IP,Payload在测试机执行连接攻击机IP的端口,这时如果在攻击机监听该端口会发现测试机已经连接
白话就是让受控机主动连接我们
bind_tcp:攻击机设置一个端口(LPORT),Payload在测试机执行打开该端口,以便攻击机可以接入
白话就是我们主动连接受控机
使用reverse_tcp较为安全,一般不会被防火墙发现

由于平台文章字数限制,后面的面试题以图片的形式展示:
在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_60571990/article/details/129802697