想从事web安全渗透工作,该如何入门?
学习Web安全渗透如何入门?首先,我们要了解什么是web安全渗透,其包括的原理有哪些?以及学习的方法。
下面我们就来说说什么是web安全渗透,其原理包括哪些?
Web安全渗透:主要是对Web应用程序和相应的软硬件设备配置的安全性进行测试。通过模拟入侵者的手段可以在授权的情况下进行流量攻击、信息收集、文件提取等敏感行为,最终输出测试报告,从而准确修复这一系列漏洞。
主要作用于各个企业网站、业务系统、移动APP、WiFi热点、Docker容器,甚至现在流行的AI机器人都是对象之一。
并且,通过web安全渗透可以更有效地发现传统漏洞、业务逻辑漏洞、系统本身漏洞和系统提升漏洞,帮助企业客户检测数万个系统漏洞和安全风险。通过发布专业的服务报告和可靠的维修方案,可以更好的防止企业客户处于萌芽状态,避免安全风险造成的巨大损失。
其原理包括:
SQL注入:Web应用程序对用户输入数据的合法性没有判断。前端传入后端的参数是攻击者可控的。修复建议:过滤字符、预编译语句。
XSS漏洞(跨站脚本攻击):恶意用户将代码注入到网页中。可能会提权、私密网页内容、会话、得到cookie。修复建议:过滤输入的数据,对输出到页面的数据进行相应的编码转换。
反射型XSS:一次性。攻击者可以通过电子邮件发给目标用户。
存储型XSS:攻击脚本将永永久的放在服务器的数据库中,隐蔽性高。论坛,留言板和博客。
DOM型XSS:基于DOM文档对象模型的一种漏洞。HTML节点。
CSRF 跨站请求伪造。是一种对网站的恶意利用。以目标用户的名义执行非法操作。目标用户发送邮件、发消息,盗取目标用户的账号,甚至购买商品,泄露个人隐私。修护:验证请求的Referer值。HTTP请求中加一个随机的token。
SSRF 服务器端请求伪造。攻击者构造请求,服务器端发起请求的安全漏洞。只允许访问HTTP和HTTPS的请求。限制不能访问内网的IP。
暴力破解:服务器没有限制,暴力破解需要一个庞大的字典。
主要工作内容的流程如下:
1.对公司各类系统进行安全加固;
2.对公司网站、业务系统进行安全评估测试(黑盒、白盒测试);
3.查看网站或APP软件是否存在SQL注入,XSS跨站,CSRF等安全漏洞;
4.对公司安全事件进行响应,清理后门,根据日志分析攻击途径;
5.安全技术研究,包括安全防范技术,黑客技术等;
6.跟踪最新漏洞信息,进行业务产品的安全检查。
那么,要掌握这些内容该如何学习呢?
第一阶段:了解Web安全相关概念并熟悉基本概念(SQL注入、上传、XSS、CSRF、一句话木马等)。
1.通过关键字(SQL注入、上传、XSS、CSRF、一句话木马等)进行Google/SecWiki;
2.阅读《精通脚本黑客》,虽然很旧也有错误,但是入门还是可以的;
3.看一些web渗透笔记/视频,了解渗透实战的整个过程,可以Google(渗透笔记、渗透过程、入侵过程等)。
第二阶段:熟悉渗透相关工具和AWVS、sqlmap、Burp、nessus、chopper、nmap、Appscan等相关工具的使用。
1.了解该类工具的用途和使用场景,先用软件名字;
2.下载无后门版的这些软件进行安装;
3.学习并进行使用,具体教材可以在SecWiki上搜索,例如:Brup的教程、sqlmap;
4.待常用的这几个软件都学会了可以安装音速启动做一个渗透工具箱;
第三阶段:渗透实战操作(掌握渗透的整个阶段并能够独立渗透小型站点)
1.网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等);
2.自己找站点/搭建测试环境进行测试,记住请隐藏好你自己;
3.研究SQL注入的种类、注入原理、手动注入技巧;
4.研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等;
5.研究XSS形成的原理和种类,具体学习方法可以;
6.研究Windows/Linux提权的方法和具体使用。
第四阶段:熟悉Windows/Kali Linux、学习基本命令、常用工具
1.熟悉Windows下的常用的cmd命令,例如:
ipconfig,nslookup,tracert,net,tasklist,taskkill等;
2.熟悉Linux下的常用命令,例如:ifconfig,ls,cp,mv,vi,wget,service,sudo等;
3.熟悉Kali Linux系统下的常用工具;
4.熟悉metasploit工具。
第五阶段:服务器安全配置(学习服务器环境配置,并能通过思考发现配置存在的安全问题)
1.Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限;
2.Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等;
3.远程系统加固,限制用户名和口令登录,通过iptables限制端口;
4.配置软件Waf加强系统安全,在服务器配置mod_security等系统;
5.通过Nessus软件对配置环境进行安全检测,发现未知安全威胁。
第六阶段:脚本编程学习(选择脚本语言Perl/Python/PHP/Go/Java中的一种,对常用库进行编程学习)
1. 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime,一些Sublime的技巧:SecWiki-Sublime;
2. Python编程学习,学习内容包含:语法、正则、文件、网络、多线程等常用库;
3. 用Python编写漏洞的exp,然后写一个简单的网络爬虫;
4. PHP基本语法学习并书写一个简单的博客系统;
5. 熟悉MVC架构,并试着学习一个PHP框架或者Python框架(可选);
6. 了解Bootstrap的布局或者CSS。
第七阶段:源码审计与漏洞分析(能独立分析脚本源码程序并发现安全问题)
1.熟悉源码审计的动态和静态方法,并知道如何去分析程序;
2.从Wooyun上寻找开源程序的漏洞进行分析并试着自己分析;
3.了解Web漏洞的形成原因,然后通过关键字进行查找分析;
4.研究Web漏洞形成原理和如何从源码层面避免该类漏洞,并整理成checklist。
第八阶段:安全体系设计与开发(能建立自己的安全体系,并能提出一些安全建议或者系统架构)
1.开发一些实用的安全小工具并开源,体现个人实力;
2.建立自己的安全体系,对公司安全有自己的一些认识和见解;
3.提出或者加入大型安全系统的架构或者开发。