CTF-WEB
HackBar:快速构造HTTP请求,支持编码解码Wappalyzer:识别网站使用的技术栈:编辑和管理Cookie:修改浏览器User-Agent。
CTF
CTF基础知识
什么是CTF
CTF(Capture The Flag)是一种网络安全竞赛形式,参赛者需要通过各种技术手段找到隐藏的"旗帜"(flag)。
CTF竞赛分类
-
Jeopardy(解题模式):提供各种类型的题目,解题获得分数
-
Attack-Defense(攻防模式):团队间相互攻击和防守
-
King of the Hill(山丘之王):争夺并保持对目标系统的控制
Web安全常见漏洞分类
1. 信息泄露类
-
源码泄露:通过查看页面源码、备份文件等获取敏感信息
-
目录遍历:通过robots.txt、目录扫描等发现隐藏文件
-
错误信息泄露:通过错误页面获取系统信息
2. 认证绕过类
-
弱口令:使用常见的用户名密码组合
-
Cookie伪造:修改Cookie值绕过认证
-
会话劫持:获取他人的会话标识
3. 注入类漏洞
-
SQL注入:通过输入恶意SQL语句操作数据库
-
命令注入:通过输入恶意命令执行系统命令
-
代码注入:注入恶意代码并执行
4. 逻辑漏洞类
-
条件竞争:利用程序执行时序问题
-
业务逻辑缺陷:利用程序设计上的逻辑漏洞
-
类型混淆:利用弱类型语言的类型转换特性
5. 客户端安全
-
XSS(跨站脚本):在页面中注入恶意脚本
-
CSRF(跨站请求伪造):伪造用户请求
-
点击劫持:诱导用户点击隐藏元素
WEB入门
攻防世界
题单:https://adworld.xctf.org.cn/challenges/problem-set-index?id=25
view_source
漏洞类型:信息泄露 - 源码泄露
知识点:
-
HTML源码查看
-
前端信息泄露
-
开发者工具使用
原理: 开发者有时会在HTML注释中留下敏感信息,或者将flag直接写在前端代码中。通过查看页面源码可以发现这些隐藏信息。
解题方法:
-
按F12打开开发者工具
-
查看Elements标签页中的HTML源码
-
寻找注释中的flag信息
常见查看源码的方法:
-
F12开发者工具 -
Ctrl+U查看页面源码 -
右键 → 查看页面源码
-
curl命令获取页面内容
get_post
漏洞类型:HTTP请求方法理解
知识点:
-
HTTP GET/POST请求方法
-
请求参数传递
-
浏览器插件使用
原理: HTTP协议中有多种请求方法,GET和POST是最常用的两种:
-
GET:参数在URL中传递,如
?name=value -
POST:参数在请求体中传递,不在URL中显示
解题方法:
-
分析题目要求的请求方法和参数
-
使用HackBar等工具构造相应的请求
-
发送请求获取flag
常用工具:
-
HackBar:Firefox/Chrome插件,方便构造HTTP请求
-
Burp Suite:专业的Web安全测试工具
-
Postman:API测试工具
-
curl命令:命令行HTTP客户端

robots
漏洞类型:信息泄露 - 目录遍历
知识点:
-
robots.txt文件作用
-
网站目录结构探测
-
搜索引擎爬虫协议
原理: robots.txt 是网站根目录下的一个文件,用于告诉搜索引擎爬虫哪些页面可以抓取,哪些不能抓取。但这个文件是公开可访问的,攻击者可以通过查看这个文件来发现网站的隐藏目录和敏感文件。
robots.txt语法:
User-agent: * # 适用于所有爬虫 Disallow: /admin/ # 禁止访问admin目录 Disallow: /private/ # 禁止访问private目录 Allow: /public/ # 允许访问public目录
解题方法:
-
访问
网站域名/robots.txt -
查看被禁止访问的目录和文件
-
尝试直接访问这些"禁止"的路径
常见敏感文件:
-
/robots.txt- 爬虫协议文件 -
/sitemap.xml- 网站地图 -
/.git/- Git版本控制目录 -
/admin/- 管理后台 -
/backup/- 备份文件目录
根据题目访问robots.txt文件,输入http://61.147.171.103:58682/robots.txt
得到文件内容,依据文件内容输入对应的地址http://61.147.171.103:58682/f1ag_1s_h3re.php,获得flag
backup
漏洞类型:信息泄露 - 备份文件泄露
知识点:
-
目录扫描技术
-
备份文件命名规律
-
源码泄露风险
原理: 开发者在维护网站时,经常会创建源文件的备份,这些备份文件可能包含敏感信息如数据库密码、API密钥等。常见的备份文件扩展名包括:.bak、.backup、.old、.tmp、.swp等。
常见备份文件命名规律:
-
index.php.bak- 直接添加.bak后缀 -
index.php.old- 添加.old后缀 -
index.php~- vim编辑器备份文件 -
index.php.backup- 完整backup后缀 -
index.php.orig- 原始文件备份 -
.index.php.swp- vim交换文件
解题方法:
-
使用目录扫描工具探测网站结构
-
重点关注返回200状态码的文件
-
下载并分析备份文件内容
常用扫描工具:
-
御剑:Windows下的目录扫描工具
-
dirsearch:Python编写的目录扫描工具
-
gobuster:Go语言编写的高速扫描工具
-
dirb:经典的目录暴力破解工具
扫描命令示例:
# dirsearch python3 dirsearch.py -u http://target.com -e php,bak,old # gobuster gobuster dir -u http://target.com -w wordlist.txt -x php,bak,old
使用御剑或dirsear对网站进行扫描,发现200OK的文件进行访问,在浏览器中输入
http://61.147.171.103:62146/index.php.bak
下载备份文件,打开可以发现flag 
cookie
根据题目内容,查看cookie
将其进行抓包操作,发现需要我们访问cookie.php 
访问查看响应包
获得flag
disabled_button
按F12,删除disable标签
此时点击按钮即可获得flag
simple_js
String["fromCharCode"](dechiffre("\x35\x35\x2c\x35\x36\x2c\x35\x34\x2c\x37\x39\x2c\x31\x31\x35\x2c\x36\x39\x2c\x31\x31\x34\x2c\x31\x31\x36\x2c\x31\x30\x37\x2c\x34\x39\x2c\x35\x30"));
h = window.prompt('Enter password');
输入的十六进制字符串 \x35\x35\x2c\x35\x36... 实际上是:55,56,54,79,115,69,114,116,107,49,50
55,56,54,79,115,69,114,116,107,49,50将这串数字进行ascii转换得到786OsErtk12
Cyberpeace{786OsErtk12}
xff_referer
根据提示伪造ip和xff
可以获得flag 
weak_auth
输入admin 123456
获得flag 
command_execution
输入127.0.0.1,发现回显
尝试拼接操作
发现可以执行,寻找flag,输入127.0.0.1;find / -name "flag" 
查看flag.txt
simple_php
题目代码:
<?php
show_source(__FILE__);
include("config.php");
$a=@$_GET['a'];
$b=@$_GET['b'];
if($a==0 and $a){
echo $flag1;
}
if(is_numeric($b)){
exit();
}
if($b>1234){
echo $flag2;
}
?>
代码分析:
-
第一个条件判断:
if($a==0 and $a)-
需要
$a既等于0,又为真值 -
利用PHP弱类型比较漏洞
-
-
第二个条件判断:
if(is_numeric($b)){ exit(); } if($b>1234){ echo $flag2; }-
如果
$b是数字,程序直接退出 -
需要
$b不是数字但能大于1234
-
绕过方法:
-
绕过第一个条件(获得flag1):
-
使用
a=0a或a=0x0 -
原理:
0a在弱类型比较中==0,但作为字符串是真值
-
-
绕过第二个条件(获得flag2):
-
使用
b=1235a或b=9999a -
原理:
is_numeric("1235a")返回false,但比较时PHP自动转换为数字1235
-
Payload:
http://61.147.171.35:52348/?a=0a&b=1235r
可以获得flag 
常用工具和技巧总结
Web安全测试工具
浏览器插件
-
HackBar:快速构造HTTP请求,支持编码解码
-
Wappalyzer:识别网站使用的技术栈
-
Cookie Editor:编辑和管理Cookie
-
User-Agent Switcher:修改浏览器User-Agent
专业安全工具
-
Burp Suite:Web应用安全测试的瑞士军刀
-
Proxy:拦截和修改HTTP请求
-
Repeater:重放和修改请求
-
Intruder:自动化攻击工具
-
Scanner:漏洞扫描器
-
-
OWASP ZAP:开源Web应用安全扫描器
-
Nmap:网络扫描和端口探测
-
Sqlmap:自动化SQL注入工具
目录扫描工具
-
御剑:Windows下的图形化目录扫描工具
-
dirsearch:Python编写,支持多线程
-
gobuster:Go语言编写,速度快
-
dirb:经典工具,内置字典丰富
编码解码工具
-
CyberChef:在线编码解码工具
-
Burp Decoder:Burp Suite内置解码器
-
在线工具:Base64、URL编码、MD5等
常用技巧和方法
信息收集
-
查看页面源码:
Ctrl+U或F12 -
检查robots.txt:
网站/robots.txt -
查看HTTP响应头:使用开发者工具Network标签
-
目录扫描:使用自动化工具发现隐藏文件
-
子域名枚举:发现更多攻击面
绕过技巧
-
大小写绕过:
Adminvsadmin -
编码绕过:URL编码、Base64编码等
-
注释绕过:
/**/在SQL中绕过空格过滤 -
双重编码:对已编码的内容再次编码
-
HTTP方法绕过:尝试不同的HTTP方法
常见Payload模式
# SQL注入测试 ' OR 1=1-- " OR 1=1-- admin'-- # XSS测试 <script>alert(1)</script> <img src=x οnerrοr=alert(1)> # 命令注入测试 ; ls | whoami & dir # 文件包含测试 ../../../etc/passwd ....//....//etc/passwd
PHP安全特性
弱类型比较
"0" == 0 // true "0a" == 0 // true "0x0" == 0 // true false == 0 // true null == 0 // true
类型转换
is_numeric("123a") // false
"123a" > 100 // true (转换为123)
"abc" == 0 // true
常见绕过
-
md5绕过:使用数组
md5([]) === md5([]) -
strcmp绕过:使用数组
strcmp([], "string") -
preg_match绕过:使用换行符绕过
^和$
更多推荐



所有评论(0)