web安全黑客特训(web安全笔记)
本文目录一览:
如何系统学习web安全,web渗透测试
首先得清楚web安全/web渗透是什么:模拟黑客攻击,利用黑客技术,挖掘漏洞,提出修复建议。
涉及到的技术有:数据库/网络技术/编程技术/操作系统/渗透技术/攻防技术/逆向技术/SRC漏洞平台/ctf经验。。
岗位能力要求:
1、熟练使用awvs、nessus、metasploit、burpsuite等安全测试工具,并对其原理有一定了解
2、熟悉OWASP中常见的web安全漏洞、业务逻辑漏洞及其原理
3、熟悉渗透测试技术的整体流程,具备独立开展渗透工作的能力;
4、熟悉linux系统操作,了解常见web中间件、数据库、服务器相关漏洞
5、至少掌握一种编程语言,能够开发用于辅助日常工作的脚本
6、具备一定的php或java代码审计能力,能够对公开漏洞进行分析
7、具备良好的逻辑思维、沟通技巧及团队协作能力
8、已取得信息安全等级测评师证书的优先。(NISP)
想要系统的学习web渗透,可以参考企业对人才的要求进行学习。
什么是WEB安全?是网络安全么?
网站安全
§1、网站安全概述
一、 常见的网站提供的服务:DNS SERVER,WEB SERVER,E-MAIL SERVER,FTP SERVER,此外网站还需要有个主服务器(最好不要把网站的操作系统服务器与上述的SERVER 放在一起)(不一定全对互联网开放)
1、 这些常见的服务属于TCP/IP协议栈,如果低层安全性被攻击了,则高层安全成了空中楼阁。所以要进行安全分析(安全只是个动态的状态)
2、 TCP/IP协议栈各层常见的攻击(回忆TCP/IP各层结构图)
(1)物理层:数据通过线传输是特点
威胁:监听网线,sniffer软件进行抓包,拓朴结构被电磁扫描攻破
保护:加密,流量填充等
(2)internet层:提供寻址功能是其特点-----路由,IP,ICMP,ARP,RARP
威胁:IP欺骗(工具完成将数据包源地址IP改变)
保护:补丁、防火墙、边界路由器设定
(3)传输层:控制主机间的信息流量-----TCP,UDP
威胁:DOS(图),DDOS,会话劫持等
保护:补丁、防火墙、开启操作系统抗DDOS攻击特性
(4)应用层:协议最多最难防
①SMTP协议:
威胁:邮件风暴(黑客给邮件服务器不断发木马或病毒),企业用户内网与外网采用同样的邮箱名,邮件的中继与转发(图)
保护:防病毒网关,邮件服务器软件及时打补丁
②FTP协议:
威胁:匿名用户如果具有写权限,会上传非法服务给FTP SERVER; 用户名、口令在FTP客户端与服务器端之间是明文传输
保护:FTP数据存放于独立分区,不允许匿名的FTP连接,上传与下载位于不同的NTFS分区,FTP客户端与服务器端的通讯进行加密SSH
③HTTP协议:
威胁:Java script,CGI,ASP,ActiveX
保护:禁止这些不安全的控件,杀毒软件
④Telnet协议:
威胁:明文传输敏感数据
保护:加密
⑤SNMP协议:
威胁:public默认社区名,明文传输敏感信息
保护:将默认社区名改名,防火墙
⑥DNS协议:
威胁:DNS欺骗
保护:防火墙阻止,在DNS zone中设定成只允许几个主机的zone传输
3、 网站业务流(电子商务与普通企业网站业务流不同,重点是认证)、采用的拓朴、防火墙体系结构、操作系统等的不同,受到的威胁也不同
二、 在网站业务流、采用的拓朴、防火墙体系结构、操作系统等体系结构确定的前提下,还存在的安全问题
1、未授权存取(匿名用户具有写权限----IIS写权限扫描工具+桂林老兵可以完成)
2、窃取系统信息:帐号,银行
3、破坏系统:破坏数据(删除数据)
4、非法使用:利用FTP服务器存放非法软件
5、病毒木马:不小心执行病毒、木马
三、web站点典型安全漏洞
1、操作系统类:通用安全漏洞,各操作系统特有的安全漏洞
2、路由器等网络系统漏洞:如路由器、防火墙等的缺省配置及配置错误(一部分边界路由器有自动配置的功能,但这种自动配置功能必须手工开启)(见校园网拓朴结构图)
3、应用系统安全漏洞:协议漏洞
4、网络安全防护系统不健全:缺乏安全意识,缺少定期的安全检测、安全监控
5、其它漏洞:易被欺骗,弱认证,对电邮队服附件病毒及WEB浏览可能存在的恶意java/ActiveX小控件进行有效控制。
正因为存在这些安全漏洞所以要制定安全策略。
§2、WEB站点安全策略
允许远程执行CGI脚本,脚本中的bug会成为保护操作系统的漏洞;但如果限制CGI限制得过头了,web使用起来不方便(安全是使用方便与安全配置之间的一个平衡点)
一、 安全策略定制原则:
1、风险分析:搞清站点属于低端安全、中端安全、还是高端安全?易受哪些威胁?(默认配置)?根据威胁进行安全评估(使用启明星辰的工具)
2、服务器记录原则:web服务器会记录它们收到的每一次连接(如果web server采用认证的方式还会记录下用户名),该用户在此期间填写的表格会被记录下来,会对用户构成威胁。
解决方案:web服务器管理者可以查阅用户资料,但无需打开(审计人员查管理员好些)
二、 配置web server的安全特性
1、用户与站点建立连接的过程中可能会造成因域名欺骗而使得用户得不到授权访问及要求的信息或者把黑客当作合法用户来允许其访问
2、加强各服务器的措施
①web server:主分区存放操作系统,web server放至另一分区;CGI脚本放至第三个NTFS分区;不以administrator身份运行web server(而以另一用户身份运行web server)其余见winnt站点解决方案
②ftp server:与web server不同分区,允许只读访问,进行访问控制的设置(一般只对内网开放)
③电子邮件服务器:安装网络级电子邮件扫描软件;禁掉中继任何未授权用户;设置垃圾邮件过滤及巨型邮件过滤条件
三、 排除站点中的安全漏洞,尽量减少安全漏洞
1、物理漏洞:未授权人员访问引起的
2、软件漏洞:由软件应用程序的错误授权引起。首要规则----不轻易相信脚本、java applet
3、不兼容问题
4、缺乏安全策略
四、 监视控制出入web站点的出入情况
1、 Webtrends:查访问次数最多的站点、最频繁的用户。它可以完成监控请求(如:sever访问次数,用户来自何处,服务器上哪类信息被访问、访问的浏览器类型、用户提交方式等);它可以测算命中次数(可以确定出站点的命中次数----一个用户详细地读站点时一次简单的会话可以形成几次命中;还可以通过站点上某个文件的访问次数来确定站点访问者的数目)
2、 入侵检测系统:免费的snort
3、 传输更新:web三元素----HTTP协议,数据格式HTML,浏览器。三元素以HTML为中心,必须保持其更新
web安全要学什么?
Web安全的范围实在太大,哪些先学,哪些后学,如果没有系统的路线会降低大家效率,对于刚入门的同学们来说简直就是“噩梦”。所以,这篇类似学习路线的文章,希望可以帮助刚入门的萌新们少走弯路。(文末附学习资料及工具领取)
首先我们来看看企业对Web安全工程师的岗位招聘需求是什么?
1职位描述
对公司各类系统进行安全加固;
对公司网站、业务系统进行安全评估测试(黑盒、白盒测试)
对公司安全事件进行响应、清理后门、根据日志分析攻击途径
安全技术研究,包括安全防范技术、黑客技术等;
跟踪最新漏洞信息,进行业务产品的安全检查。
2岗位要求
熟悉Web渗透测试方法和攻防技术,包括SQL注入、XSS跨站、CSRF伪造请求、命令执行等OWSP TOP10 安全漏洞与防御;
熟悉Linux、Windows不同平台的渗透测试,对网络安全、系统安全、应用安全有深入理解和自己的认识;
熟悉国内外安全工具,包括Kali、Linux、Metasploit、Nessus、Namp、AWVS、Burp等;
对Web安全整体有深刻理解,有一定漏洞分析和挖掘能力;
根据岗位技能需求,再来制定我们的学习路径,如下:
一、Web安全学习路径
01 HTTP基础
只有搞明白Web是什么,我们才能对Web安全进行深入研究,所以你必须了解HTTP,了解了HTTP,你就会明白安全术语的“输入输出”。黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。关于HTTP,你必须要弄明白以下知识:
HTTP/HTTPS特点、工作流程
HTTP协议(请求篇、响应篇)
了解HTML、Javascript
Get/Post区别
Cookie/Session是什么?
02 了解如下专业术语的意思
Webshell
菜刀
0day
SQL注入
上传漏洞
XSS
CSRF
一句话木马
......
03 专业黑客工具使用
熟悉如何渗透测试安全工具,掌握这些工具能大大提高你在工作的中的效率。
Vmware安装
Windows/kali虚拟机安装
Phpstudy、LAMP环境搭建漏洞靶场
Java、Python环境安装
子域名工具 Sublist3r
Sqlmap
Burpsuite
Nmap
W3af
Nessus
Appscan
AWVS
04 XSS
要研究 XSS 首先了解同源策略 ,Javascript 也要好好学习一下 ,以及HTML实体 HTML实体的10 或16进制还有Javascript 的8进制和16进制编码,最终掌握以下几种类型的XSS:
反射型 XSS:可用于钓鱼、引流、配合其他漏洞,如 CSRF 等。
存储型 XSS:攻击范围广,流量传播大,可配合其他漏洞。
DOM 型 XSS:配合,长度大小不受限制 。
05 SQL注入
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。你需要了解以下知识:
SQL 注入漏洞原理
SQL 注入漏洞对于数据安全的影响
SQL 注入漏洞的方法
常见数据库的 SQL 查询语法
MSSQL,MYSQL,ORACLE 数据库的注入方法
SQL 注入漏洞的类型:数字型注入 、字符型注入、搜索注入 、盲注(sleep注入) 、Sqlmap使用、宽字节注入
SQL 注入漏洞修复和防范方法
一些 SQL 注入漏洞检测工具的使用方法
06 文件上传漏洞
了解下开源编辑器上传都有哪些漏洞,如何绕过系统检测上传一句话木马、WAF如何查杀Webshell,你必须要掌握的一些技能点:
1.客户端检测绕过(JS 检测)
2.服务器检测绕过(目录路径检测)
3.黑名单检测
4.危险解析绕过攻击
5..htaccess 文件
6.解析调用/漏洞绕过
7.白名单检测
8.解析调用/漏洞绕过
9.服务端检测绕过-文件内容检测
10.Apache 解析漏洞
11.IIS 解析漏洞
12.Nginx 解析漏洞
07 文件包含漏洞
去学习下
include() include_once() require() require_once() fopen() readfile()
这些php函数是如何产生文件包含漏洞, 本地包含与远程包含的区别,以及利用文件包含时的一些技巧如:截断 /伪url/超长字符截断等 。
08 命令执行漏洞
PHP代码中常见的代码执行函数有:
eval(), assert(), preg_replace(), call_user_func(), call_user_func_array(),create_function(), array_map()等。
了解这些函数的作用然后些搞清楚如何造成的代码执行漏洞。
09 CSRF 跨站点请求
为什么会造成CSRF,GET型与POST型CSRF 的区别, 如何防御使用 Token防止CSRF?
010 逻辑漏洞
了解以下几类逻辑漏洞原理、危害及学会利用这几类漏洞:
信息轰炸、支付逻辑漏洞、任意密码修改、越权访问、条件竞争、任意注册、任意登录、顺序执行缺陷、URL跳转漏洞.
011 XEE(XML外部实体注入)
当允许XML引入外部实体时,通过构造恶意内容,可以导致文件读取、命令执行、内网探测等危害。
012 SSRF
了解SSRF的原理,以及SSRF的危害。
SSRF能做什么?当我们在进行Web渗透的时候是无法访问目标的内部网络的,那么这个时候就用到了SSRF漏洞,利用外网存在SSRF的Web站点可以获取如下信息。
1.可以对外网、服务器所在内网、本地进行端口扫描,获取一些服务的banner信息;
2.攻击运行在内网或本地的应用程序(比如溢出);
3.对内网Web应用进行指纹识别,通过访问默认文件实现;
4.攻击内外网的Web应用,主要是使用get参数就可以实现的攻击(比如struts2,sqli等);
5.利用file协议读取本地文件等。
如果上述漏洞原理掌握的都差不多那么你就算入门Web安全了。
如果看了上面你还不知道具体如何学习?可参考合天网安实验室Web安全工程师岗位培养路径学习:网页链接
零基础如何学习web安全?能不能学会呢
一. 首先你得了解WebWeb分为好几层,一图胜千言 事实是这样的:如果你不了解这些研究对象是不可能搞好安全研究的。这样看来,Web有八层(如果把浏览器也算进去,就九层啦,九阳神功……)!!!每层都有几十种主流组件!!!这该怎么办?别急,一法通则万法通,这是横向的层,纵向就是数据流啦!搞定好数据流:从横向的层,从上到下→从下到上,认真看看这些数据在每个层是怎么个处理的。数据流中,有个关键的是HTTP协议,从上到下→从下到上的头尾两端(即请求响应),搞通!难吗?《HTTP权威指南》720页!!!坑爹,好难!!!怎么办?横向那么复杂、纵向数据流的HTTP协议就720页的书!!!放弃好了……不,千万别这样。给你点信心是:《HTTP权威指南》这本书我压根没看过。但是通过百度/Google一些入门的HTTP协议,我做了大概了解,然后Chrome浏览器F12实际看看“Network”标签里的HTTP请求响应,不出几小时,就大概知道HTTP协议这玩意了。(这是快速研究的精髓啊)搞明白HTTP协议后,你就会明白安全术语的“输入输出”。黑客通过输入提交“特殊数据”,特殊数据在数据流的每个层处理,如果某个层没处理好,在输出的时候,就会出现相应层的安全问题。