小白学安全--web安全入门

本文涉及的产品
访问控制,不限时长
简介: 小白学安全--web安全入门

作为一个从知道创与到自建安全团队的资深白帽子,一路也是从不止所谓的web小白历经磨难成长起来的我,给现在正在准备学习web安全的同学一些建议。在我认为,渗透安全的范围其实要学习的东西很广泛的,间接的相当于你要是一个前端工程师,也要是一个后端工程师(其中就包含主流的phpJAVApython),如果学习移动端安全,你还要是一个出色的安卓工程师而网络安全又细分为很多方向,比如系统安全、移动安全、无线安全、web安全等。 

作为还没接触或者刚刚接触渗透测试,或者安全方面的同学来说,这里建议你们可以从web安全开始学web安全领域相对来说比较好入门,后续如果要转的话,无论是转前端还是转后端都是比较吃香的,其实对于没有学习过来说呢,入门是相对来说友好一些的。我刚开始的时候也是从web安全开始入手的,后续的介绍与相关教学也会以web安全为主。 

第一课就先以介绍为主,如何上车web网络安全


01对于系统的操作

首先要熟悉的就是各种操作系统,这里主推centos,因为无论是企业还是个人网站,用的最多的都是以centos作为操作系统运行服务器,有能力的可以玩一下kali系统,里面集成了很多渗透测试软件。

 

02数据库的学习

针对于web漏洞中的SQL例如:MySQL数据库的基本操作

Sqlmap sql注入工作的操作,著名的自动化sql注入工具,可以找到漏洞,并直接查看数据

 

03进行web安全渗透

熟悉常见的web攻击类型,有机会可以直接进行实战01:注入漏洞

1SQL注入(SQL Injection

由于程序对SQL相关的一些敏感字符缺少过滤or转换,攻击者把SQL命令插入到用户提交的数据中,欺骗服务器执行恶意的SQL命令,非法获取到内部权限和数据。

风险:读取or篡改数据库的数据,获取服务器or管理员权限

类型:

a、数据型

b、字符型

其他注入方式

c、伪静态注入

dGET & POST注入

eCookie注入

   2SQL盲注(SQL Blind Injection

a.基于布尔的盲注[Boolean-Based]

SQL注入过程中,应用程序仅仅返回True页面和False页面,无法根据应用程序的返回页面得到数据库信息,但可通过构造逻辑条件(如比较大小)向服务端请求后的返回页面来分析判断我们所需要的数据库信息。

b.基于时间的盲注[Time-Based]

注入的SQL代码影响后台数据库的功能,但此时Web的前端页面始终显示True页面,知识页面返回的响应时间有差异,可以根据时间差来推断注入语句中的判断条件真假,继而获取数据库相关的信息。

   3OS命令注入

OS Command Injection,当应用程序使用外部输入的字符串,or使用受外部影响的字符串来组装命令时,若没有进行安全过滤防范,可能产生OS命令的注入攻击,甚至操作服务器相关的权限。

   4Xpath注入

利用XPath解析器的松散输入和容错特性,能够在URL、表单或其它信息上附带恶意的XPath查询代码,以获得权限信息的访问权并更改这些信息。

02:失效的身份认证和会话管理

用户身份认证和会话管理是一个应用程序中最关键的过程,有缺陷的设计会严重破坏这个过程。在开发Web应用程序时,开发人员往往只关注Web应用程序所需的功能,通常会建立自定义的认证和会话管理方案。但要正确实现这些方案却很难,结果这些自定义的方案往往在如下方面存在漏洞:退出、密码管理、超时、记住我、密码问题、帐户更新等。

03:敏感信息泄露

在最近几年,这是最常见的、最具影响力的攻击。这个领域最常见的漏洞是不对敏感信息进行加密。在数据加密过程中,常见的问题是不安全的密钥生成和管理以及使用弱加密算法、弱协议和弱密码。特别是使用弱的哈希算法来保护密码。

攻击者不是直接攻击密码,而是在传输过程中或从客户端(例如:浏览器)窃取密钥、发起中间人攻击,或从服务器端窃取明文数据。

04XML外部实体(XXE

默认情况下,许多旧的XML处理器能够对外部实体、XML进程中被引用和评估的URI进行规范。如果攻击者可以上传XML文档或者在XML文档中添加恶意内容,通过易受攻击的代码、依赖项或集成,他们就能够攻击含有缺陷的XML处理器。

XXE缺陷可用于提取数据、执行远程服务器请求、扫描内部系统、执行拒绝服务攻击和其他攻击。

05:失效的访问控制

由于缺乏自动化的检测和应用程序开发人员缺乏有效的功能测试,因而访问控制缺陷很常见。访问控制检测通常不适用于自动化的静态或动态测试。手动测试是检测访问控制缺失或失效的最佳方法,包括:HTTP方法(如:GETPUT)、控制器、直接对象引用。

攻击者可以冒充用户、管理员或拥有特权的用户,或者创建、访问、更新或删除任何记录。

06:安全配置错误

安全配置错误可以发生在一个应用程序堆栈的任何层面,包括网络服务、平台、Web服务器、应用服务器、数据库、框架、自定义代码和预安装的虚拟机、容器和存储。自动扫描器可用于检测错误的安全配置、默认帐户的使用或配置、不必要的服务、遗留选项等。

通常,攻击者能够通过未修复的漏洞、访问默认账户、不再使用的页面、未受保护的文件和目录等来取得对系统的未授权的访问或了解。

07:跨站脚本(XSS

XSSOWASP Top10中第二普遍的安全问题,存在于近三分之二的应用中。由于程序缺少对某些敏感字符的过滤or转换,攻击者对在url或输入框中输入HTML/JS恶意代码提交成功后并被执行,获取用户or程序敏感信息。

XSS对于反射和DOM的影响是中等的,而对于存储的XSSXSS的影响更为严重,譬如在受攻击者的浏览器上执行远程代码,例如:窃取凭证和会话或传递恶意软件等。

08:不安全的反序列化

反序列化漏洞有十年的历史,存在于不同的编程语言中,最为明显的当属JavaPHPPythonRuby。漏洞的本质就是反序列化机制打破了数据和对象的边界,导致攻击者注入的恶意序列化数据在反序列化过程中被还原成对象,控制了对象就可能在目标系统上面执行攻击代码。

09:使用含有已知漏洞的组件

这种安全漏洞普遍存在。基于组件开发的模式使得多数开发团队不了解其应用或API中使用的组件,更谈不上及时更新这些组件了。如Retire.js之类的扫描器可以帮助发现此类漏洞,但这类漏洞是否可以被利用还需花费额外的时间去研究。

10:不足的日志记录和监控

对不足的日志记录及监控的利用几乎是每一个重大安全事件的温床。攻击者依靠监控的不足和响应的不及时来达成他们的目标而不被知晓。

根据行业调查的结果,此问题被列入了Top10。判断你是否有足够监控的一个策略是在渗透测试后检查日志。测试者的活动应被充分的记录下来,能够反映出他们造成了什么样的影响。

多数成功的攻击往往从漏洞探测开始。允许这种探测会将攻击成功的可能性提高到近100%;据统计,在2016年确定一起数据泄露事件平均需要花191天时间,这么长时间里损害早已发生。

11:跨站请求伪造(CSRF

CSRF是利用某些web应用程序允许攻击者预测一个特定操作的所有细节。由于浏览器自动发送会话cookie等认证凭证,攻击者能创建恶意web页面产生伪造请求。这些伪造请求很难与合法请求区分开。

攻击者能欺骗受害用户完成该受害者所允许的任意状态改变的操作,比如:更新帐号细节,完成购物,注销甚至登录等操作。

12:未验证的重定向和转发

应用程序经常将用户重定向到其他网页,或以类似的方式进行内部转发。有时,目标网页是通过一个未经验证的参数来指定的,这就允许攻击者选择目标页面。

攻击者链接到未验证的重定向并诱使受害者去点击。由于是链接到有效的网站,受害者很有可能去点击。攻击者利用不安全的转发绕过安全检测。

这种重定向可能试图安装恶意软件或者诱使受害者泄露密码或其他敏感信息。不安全的转发可能允许绕过访问控制。

12:弱口令漏洞

弱口令(weak password) ,没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令,如:生日、名字、简单的顺序数字or字符。

13:文件上传漏洞

文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。大多数的上传漏洞被利用后攻击者都会留下WebShell以方便后续进入系统。攻击者在受影响系统放置或者插入WebShell后,可通过该WebShell更轻松,更隐蔽的在服务中为所欲为。

WebShell就是以aspphpjsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,通常会将这些aspphp后门文件与网站服务器web目录下正常的网页文件混在一起,然后使用浏览器来访问这些后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载或者修改文件,操作数据库,执行任意命令等)。

14:缓冲区溢出

在计算机内部,输入数据通常被存放在一个临时空间内,这个临时存放的空间就被称为缓冲区,缓冲区的长度事先已经被程序或者操作系统定义好了。向缓冲区内填充数据,如果数据的长度很长,超过了缓冲区本身的容量,那么数据就会溢出存储空间,而这些溢出的数据还会覆盖在合法的数据上。

操作系统所使用的缓冲区又被称为堆栈,在各个操作进程之间,指令被临时存储在堆栈当中,堆栈也会出现缓冲区溢出。当一个超长的数据进入到缓冲区时,超出部分就会被写入其他缓冲区,其他缓冲区存放的可能是数据、下一条指令的指针,或者是其他程序的输出内容,这些内容都被覆盖或者破坏掉。

15:业务逻辑漏洞

业务逻辑问题是一种设计缺陷,逻辑缺陷表现为设计者或开发者在思考过程中做出的特殊假设存在明显或隐含的错误。攻击者会特别注意目标应用程序采用的逻辑方式,设法了解设计者与开发者做出的可能假设,然后考虑如何攻破这些假设。攻击者挖掘逻辑漏洞有两个重点:业务流程、http/https请求篡改。

业务逻辑漏洞经常出现的场景为:账户(注册/登录/密码找回)、交易、支付、个人信息修改。

 

04各种的搜索引擎的使用技巧:

GoogleFOFAshodanzoomeye等搜索引擎的使用技巧来进行资产的收集,在做前期的渗透信息收集的时候,是非常重要的。可以去搜一下谷歌黑客语法,有些直接可以搜出网站登陆后台,再用简单的sqlmap直接跑注入,一些简单的网站直接就能改破解了。

 

05 HTML5、css3、PHP

在进行学习web渗透之前呢,需要简单了解一下语言HTML5css3PHP ,这些语言对于了解web安全漏洞有很大的帮助的。

 

06 要掌握基本的几种黑客工具的使用:

AWVSappscannmapburpsuitesqlmapxrayMetasploit、浏览器代理、各种语言的小马大马、蚁剑等工具的使用07 对于一些网站的基础框架要有一定的了解:TPDZWP、织梦、帝国、structsecshop、等常见的网站框架要了解08 Linux渗透进阶知识:Linux下手动查杀木马过程-使用rootkit隐藏踪迹的审计方法,主要有模拟木马程序病原体并让木马程序自动运行的代码审计,木马父进程实时监控木马的原理及防御方法,创建一个让root用户都删除不了的木马程序的原理及防御方法,深入讲解如何不让木马程序和外网数据主动通信,使用rootkit把木马程序的父进程和木马文件隐藏的审计方法,使用rkhunter Rootkit猎手来检查rootkit,还有Linux下的手工提权原理-劫持账号和密码审计及防御方法-Tripwire检查文件。以上的web渗透安全相关的知识点,建议大家先去了解这些漏洞出现的原因,再去学习攻击这些漏洞,最后的最后才是学习如何去防范这些漏洞,这其中,几乎每一步都是难的,了解漏洞出现的原因,在你看到一个系统之后,你根本发现不了漏洞,更无法去了解他出现的原因了,常见的攻击思路是使用常见的漏洞攻击方式,一步步的去试(现在大部分后台框架都已经集成了常见攻击方式的防范策略,更高级的方式等待你们去开发),其中也包含一些社会工程学的应用,比如诱导邮件之类的,总之,网络攻防就像是一场战役,没有绝对安全的系统,一切都等待你们去发掘。

 

后续公众号会制作一个简单的实战靶场,以闯关的方式,让你们更清楚的了解各种攻击方式,以便更好的学习攻防技巧。

失踪人口回归,这几天已经把账号托管给几个认识的朋友运营,自己也会参与到账号的运营中来,以便提供更加优质的文章与实战平台。

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
1天前
|
存储 安全 Go
Web安全基础:防范XSS与CSRF攻击的方法
【10月更文挑战第25天】Web安全是互联网应用开发中的重要环节。本文通过具体案例分析了跨站脚本攻击(XSS)和跨站请求伪造(CSRF)的原理及防范方法,包括服务器端数据过滤、使用Content Security Policy (CSP)、添加CSRF令牌等措施,帮助开发者构建更安全的Web应用。
10 3
|
3天前
|
SQL 安全 Go
PHP在Web开发中的安全实践与防范措施###
【10月更文挑战第22天】 本文深入探讨了PHP在Web开发中面临的主要安全挑战,包括SQL注入、XSS攻击、CSRF攻击及文件包含漏洞等,并详细阐述了针对这些风险的有效防范策略。通过具体案例分析,揭示了安全编码的重要性,以及如何结合PHP特性与最佳实践来加固Web应用的安全性。全文旨在为开发者提供实用的安全指南,帮助构建更加安全可靠的PHP Web应用。 ###
10 1
|
7天前
|
Kubernetes 安全 应用服务中间件
动态威胁场景下赋能企业安全,F5推出BIG-IP Next Web应用防火墙
动态威胁场景下赋能企业安全,F5推出BIG-IP Next Web应用防火墙
22 3
|
17天前
|
前端开发 JavaScript 开发者
探索现代Web前端技术:React框架入门
【10月更文挑战第9天】 探索现代Web前端技术:React框架入门
|
28天前
|
缓存 安全 JavaScript
掌握JAMstack:构建更快、更安全的Web应用
JAMstack 是一种现代 Web 开发架构,结合 JavaScript、APIs 和 Markup,创建更快、更安全的 Web 应用。其核心优势包括高性能、安全性、可扩展性和易维护性。JAMstack 通过预构建静态页面和 API 实现高效渲染,利用静态站点生成器如 Gatsby 和 Next.js,并借助 CDN 和缓存策略提升全球访问速度。尽管面临复杂交互、SEO 和数据更新等挑战,但通过 Serverless Functions、预渲染和实时 API 更新等方案,这些挑战正逐步得到解决。
|
14天前
|
网络协议 安全 JavaScript
Web实时通信的学习之旅:WebSocket入门指南及示例演示
Web实时通信的学习之旅:WebSocket入门指南及示例演示
80 0
|
15天前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
23 0
|
2月前
|
前端开发 开发者 Python
从零到一:Python Web框架中的模板引擎入门与进阶
在Web开发的广阔世界里,模板引擎是连接后端逻辑与前端展示的重要桥梁。对于Python Web开发者而言,掌握模板引擎的使用是从零到一构建动态网站或应用不可或缺的一步。本文将带你从基础入门到进阶应用,深入了解Python Web框架中的模板引擎。
30 3
|
2月前
|
JSON 安全 JavaScript
Web安全-JQuery框架XSS漏洞浅析
Web安全-JQuery框架XSS漏洞浅析
298 2
|
24天前
|
监控 安全 Apache
构建安全的URL重定向策略:确保从Web到App平滑过渡的最佳实践
【10月更文挑战第2天】URL重定向是Web开发中常见的操作,它允许服务器根据请求的URL将用户重定向到另一个URL。然而,如果重定向过程没有得到妥善处理,可能会导致安全漏洞,如开放重定向攻击。因此,确保重定向过程的安全性至关重要。
29 0