层次
首先Web安全,其中Web的意思是万维网,所以我认为Web安全,就是网站服务的出现的安全问题。而在建立一个网站的过程中,涉及到非常多的技术,而且都是不同层面的技术。我认为在研究一个问题时,最主要的是要知道研究对象层次结构。或者说他包含了什么?又是什么包含了他?
OSI与TCP/IP分层:
Web组件分层:
我的理解如果把这两张图接到一起就是(没装ps随便在线拼的):
- 操作系统中实现了TCP/IP协议栈
- Web容器默认一般绑定TCP的80端口,实现HTTP协议的通信
- HTTP的通信内容是HTML的网页内容
- 静态HTML的网页内容是写死的
- 动态网页的HTML内容可由Web服务端语言动态生成
技能表
虽然此技能表在业界大佬的评价中不高,但是入门水平绝对比我这个强多了。可以重点关注[专业技能]-[Web安全]标签下的内容。
安全问题
所以一般我们讨论的Web安全问题就是出现在应用层上的问题:
Web容器(服务器中间件)
- 配置错误导致的漏洞
- 容器本身有漏洞
数据库
- 没有过滤的sql语句直接被执行(sql injection)
- 数据库本身配置不当,如弱口令等
后端语言
- 后端语言的逻辑写的不完善,出现一些判断绕过等
- 语言本身的特性导致的漏洞,如php反序列化
前端脚本
- JavaScript脚本在客户端浏览器执行,如果这里注入恶意代码将泄露客户cookie等(xss,csrf)
框架漏洞
- 各中已经写好的框架中出现的漏洞,是(数据库,后端语言,前段脚本)的漏洞集合
各种漏洞的详细理解请参考:黑客攻防技术宝典——web实战篇
工具
- burp(修改http报文)
- wireshark(抓取各种网络数据包,不止http)
- 菜刀(一句话木马的使用工具)
window?linux?
比私房菜薄的入门手册
参考资料
链接:https://pan.baidu.com/s/1nwwhLjF
密码:iw0t
- 黑客攻防技术宝典——Web实战篇(技术框架以及细节)
- 图解HTTP(简单易懂)
- network-protocol-map-2016(网络分层图解)
- 国内顶级培训机构CISSP中英文对照习题1000题(二三部分:电信与网络安全、软件安全开发)
- 图解TCP/IP(选读)
CTF中的web
与实际web攻防还是有些差别的,特点:
- 目标化:漏洞目标站点给出,一般不需要通过域名搜集真实的ip地址
- 轻量级:功能单一,或者没有功能
- 漏洞突出:肯定有可以利用的漏洞
- 出题人思路:做歪了就完蛋了,如国赛的web2
WEB
- 网页服务
- tcp/80
- HTTP
网站后端语言
- c/c++
- python
- java(tomcat)
- js(node.js)
- php(apache)
- asp(iis)
网站前端框架
- AngularJS
- jquery
- Bootstrap
网站架构
apache/nginx+php+mysql 架构占多数
flag的位置
- 服务端的数据库中(一定是注入么?)
- 服务段的某个文件中
- 服务端的php变量中
- 管理员的cookie中(管理员的浏览器上)
通用后端漏洞类型
- sql注入
- 木马上传
- xxe
- 命令执行
- 文件泄露
- 弱口令/若加密
- 逻辑漏洞
- 服务器配置漏洞
通用前段漏洞
- xss
- csrf
- ssrf
phpweb漏洞
- 文件包含
- 代码执行
- 反序列化
- php黑魔法
javaweb漏洞
- 报错泄露类名
- 反序列化
- 任意文件下载
- strust命令执行
pythonweb漏洞
- 代码执行(模板注入)
- 反序列化
CMS框架以及编辑器漏洞
- dedecms
- wordpress
- thinkphp
工具
一个趁手的虚拟机,或者docker
扫描
审计
发包
注入
木马
技能
- sql
- 正则
- requests
- git
- docker
名词解析
- waf
- getshell