CTF—Web介绍
CTF中的Web题型,就是给定一个Web网站,选手要根据题目所提示的信息,找到网站上的flag字符串。
做题的方法类似于渗透测试,但通常不会是一个完整的渗透测试,而是用到渗透测试中的某一个或某几个环节。可能涉及信息搜集、各类漏洞发现与利用、权限提升等等。
为了获取flag,可能需要拿到管理员权限,数据库权限,甚至获取网站所在服务器的权限。
所需的Web 安全基础知识
1. HTML 基础
2. HTTP协议基础
3. JavaScript 基础
4. PHP 源码审计基础
5. 常见的Web 服务器基础
Apache HTTP Server
Apache HTTP Server 以稳定、安全以及对 PHP 的高效支持而被广泛用于 PHP 语言中,WAMP 或者 LAMP 就是它们组合的简称,即 Windows 或者 Linux 下的 Apache2+Mysql+PHP。
Nginx
Nginx 的特点在于它的负载均衡和反向代理功能,在访问规模庞大的站点上通常使用 Nginx 作为服务器。同样,Nginx 也和 Mysql、PHP 一同构成了 WNMP 和 LNMP 环境。和 Apache 默认将 PHP 作为模块加载不同的是,Nginx 通过 CGI 来调用 PHP。
IIS
IIS 被广泛内置于 Windows 的多个操作系统中,只需要在控制面板中的 Windows 服务下打开 IIS 服务,即可进行配置操作。作为微软的 Web 服务器,它对 .net 的程序应用支持最好,同时也支持以 CGI 的方式加载其他语言。
6. 常见web漏洞
SQL注入
文件包含
XSS漏洞
上传漏洞
代码审计
CSRF
SSRF
命令执行
PHP 弱类型
7. 常用的工具
Sqlmap
BurpSuite
AWVS
CTF-Web入门解题思路
1. 直接查看源代码
2. 修改或添加HTTP请求头
常见的有:
Referer来源伪造
X-Forwarded-For:IP伪造
User-Agent:用户代理(就是用什么浏览器什么的)
//.net的版本修改,后面添加,如版本9
.NET CLR 9
Accept-Language:语言
Cookie的修改
3. 查看HTTP请求头或响应头
4. 302跳转的中转网页有信息
5. 查看开发者工具控制台
6. JavaScript代码绕过
通过删除或修改代码或者本地代理改包绕过
7. 使用burp的repeater查看整个HTTP包
8. 阅读javascript代码,直接控制台获取正确密码
9. robots.txt文件获取信息
这本来是给搜索引擎看的信息,很可能暴露网站结构目录
10. bash_history,这个应该看到过吧,就是记录用户输入过的linux命令的
参考:
https://firmianay.gitbooks.io/ctf-all-in-one/content/doc/1.1_ctf.html
http://www.360doc.com/content/18/0808/22/58484824_776730242.shtml