渗透测试基础学习攻略
推荐关注
一、初识渗透测试
1.黑客、白客、红客区别
⌛ (1)黑客
⛺(2)白客
(3)红客
2.渗透测试的目的和意义
⌛(1)目的
信息安全等级保护的要求
2.渗透测试助力PCI DSS合规建设
在PCI DSS(Payment Card Industry Security Standards Council⽀付卡⾏业安全标准委员会)第 11.3中有这样的要求:⾄少每年或者在基础架构或应⽤程序有任何重⼤升级或修改后(例如操作系统升级、环境中添加⼦⽹络或环境中添加⽹络服务器)都需要执⾏内部和外部基于应⽤层和⽹络层的渗透测试。
3.ISO27001认证的基线要求
ISO27001 附录"A12信息系统开发、获取和维护"的要求,建⽴了软件安全开发周期,并且特别提出应在上线前参照例如OWASP标准进⾏额外的渗透测试 。
4.银监会多项监管指引中要求
依据银监会颁发的多项监管指引中明确要求,对银⾏的安全策略、内控制度、风险管理、系统安全等⽅⾯需要进⾏的渗透测试和管控能⼒的考察与评价。
⽹站为什么要做渗透测试?除了满⾜政策的合规性要求、提⾼客户的操作安全性或满⾜业务合作伙伴的要求。最终的⽬标应该是最⼤限度地减⼩业
务风险。企业需要尽可能多地进⾏渗透测试,以保持安全风险在可控制的范围内。
⽹站开发过程中,会发⽣很多难以控制、难以发现的隐形安全问题,当这些⼤量的瑕疵暴露于外部⽹络环境中的时候,就产⽣了信息安全威胁。这
个问题,企业可以通过定期的渗透测试进⾏有效防范,早发现、早解决。经过专业渗透⼈员测试加固后的系统会变得更加稳定、安全,测试后的报
告可以帮助管理⼈员进⾏更好的项⽬决策,同时证明增加安全预算的必要性,并将安全问题传达到⾼级管理层。
⛺(2)意义
渗透测试,是为了证明网络防御按照预期计划正常运行而提供的一种机制。不妨假设,你的公司定期更新安全策略和程序,时时给系统打补丁,并采用了漏洞扫描器等工具,以确保所有补丁都已打上。如果你早已做到了这些,为什么还要请外方进行审查或渗透测试呢?因为,渗透测试能够独立地检查你的网络策略,换句话说,就是给你的系统安了一双眼睛。而且,进行这类测试的,都是寻找网络系统安全漏洞的专业人士。
1.需要学什么
⌛(1)web基础知识
<2>.服务器的操作系统
⛄<3>.中间件
Nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
IIS
互联网信息服务(英语:Internet Information Services,简称IIS),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。最初是WindowsNT版本的可选包,随后自带在Windows2000、Windows XP Professional和Windows Server 2003一起发布,但在普遍使用的Windows XP Home版本上并没有IIS
TomCat
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
⌛(2)web前端和php
⛄<1>.web前端
前端开发是创建WEB页面或APP等前端界面呈现给用户的过程,通过HTML,CSS及JavaScript以及衍生出来的各种技术、框架、解决方案,来实现互联网产品的用户界面交互。 前端开发跟随移动互联网发展带来了大量高性能的移动终端设备应用。HTML5,Node.js的广泛应用,各类UI框架,JS类库层出不穷,开发难度也在逐步提升。
像是这个我们熟悉的配色网站所有的布局能看到的都属于前端。
<1>.php
这种提交信息的页面,一般都是由php对数据库进行传输的
⌛(3)数据库
<1>.关系型数据库
关系数据库
包括:MySQL、MariaDB(MySQL的代替品,英⽂维基百科从MySQL转向MariaDB)、Percona
Server(MySQL的代替品)、 PostgreSQL、Microsoft Access、Microsoft SQL、Server、Google Fusion Tables。FileMaker、Oracle数据库、Sybase、dBASE、Clipper、FoxPro、foshub。⼏乎所有的数据库管理系统都配备了⼀个开放式数据库连 接(ODBC)驱动程序,令各个数据库之间得以互相集成。
⛄<2>.非关系型数据库
⾮关系型数据库(NoSQL)
包括:BigTable(Google)、Cassandra、MongoDB、CouchDB、键值(key-value)数据库、Apache
Cassandra(为Facebook所 使⽤):⾼度可扩展、Dynamo、LevelDB(Goog
⌛(4)burp工具
<1>.burp是什么
Burp Suite 是用于攻击web 应用程序的集成平台,包含了许多工具。BurpSuite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP消息、持久性、认证、代理、日志、警报。 (burp后期是非常常用的工具,主要用于抓包、爆破、伪造url等等)
<2>.burp抓的包都代表什么
⛺(5)信息收集
<1>.Google语法
<2>.whois协议
客户端向 WHOIS 服务器的 43 端口发送 TCP[SYN] 数据包,请求建立连接。服务器返回 TCP[SYN,ACK] 包,表示可以进行连接。客户端向服务器发送要查询的信息。这里查询 baidu.com 的域名注册信息。所以发送域名 baidu.com,以回车和换行结尾。服务器收到客户端的请求包,并查询自己的域名数据库。如果存在相应的记录,将相关信息返回给客户端,如所有者信息。服务器继续将更多的域名注册信息返回给客户端,如联系方式、邮件地址等。当服务器将所有的信息都返回给客户端后,将关闭连接。此时,向客户端发送 TCP[FIN] 数据包。客户端收到服务器发来的关闭连接数据包,将关闭连接。然后,向服务器发送 TCP[FIN] 数据包。
⛄<3>.子域名
子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。
<4>.C段
每个 IP 有 ABCD 四 个段,举个例子,127.0.0.1,A 段就是 127,B 段是 0,C 段是 0,D 段是 1
<5>.旁站
⛄<6>.文件扫描
⛺(6)SQL注入
<1>.sql注入讲解
<2>.sqlmap
⛺(7)文件上传
<2>.什么是文件上传漏洞
(1)定义
文件上传漏洞是指用户上传了一个可以执行的脚本文件,并且可以通过该文件获得服务器的权限的一种漏洞。
(2)原理
大部分网站都有上传的功能,比如说上传pdf,上传png、php、exe等文件,一些文件会被网站所过滤,但是大部分web的过滤不够严格,导致在上传的位置上,用户可以上传一些带有脚本的文件,web端对脚本文件进行php解析,可以任意执行脚本文件。
三、实战心得
⌛1.渗透流程
在这里我想说,其实实践操作起来是很复杂的,半个月前我做了一个项目,拿到站后发现存在sql注入漏洞,利用sqlmap开始渗透,拿到信息后,发现是md5加密且无法破解,就没有办法继续下去,在这里我卡了大概三天左右,最后还是换了思路,通过xss获取cookie绕进去的。所以说思路还是很重要,前几天有一个站,我在做测试的时候,一直无法找到注入点,找注入点的时候已经花了1天时间,最后通过伪造命令等手段,几分钟就进去了,也许在实战中,所有前期的工作都很完善,实际情况与练习完全是两个概念,所以还是需要的多看一看大佬们的实战心得。
四、入行还需要什么
1.精通一门语言
为什么需要精通一门语言呢?因为在现实工作中,会用到代码审计,所以说要了解一些代码,我在很多贴吧上看到大佬们一般来说精通java的比较多,因为js代码是web页面很主要的代码,我们需要看一些源代码来分析,尤其是在逻辑漏洞中体现非常明显。我个人是因为大学期间python方面学的比较多,所以常用python,python主要用于脚本写作比较多。
2.选择哪门语言呢?
五、总结
————————————————
版权声明:本文为CSDN博主「跳楼梯企鹅」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/weixin_50481708/article/details/124520996