buuctf刷题记录17 [GUET-CTF2019]number_game

ida打开进入主函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-12dPQcWS-1596277028421)(D:\markdown\文件\图片\7.9.1.png)]

先看第一个if里面的函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I8hcjh02-1596277028423)(D:\markdown\文件\图片\7.9.2.png)]

首先是判断输入长度是否为10,然后逐个检查输入的字符是否是在0到4之间

然后我们看主函数中第二个if里的函数sub_400917

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MCb0vySf-1596277028425)(D:\markdown\文件\图片\7.9.3.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-agfdr0sT-1596277028426)(D:\markdown\文件\图片\7.9.4.png)]

自己看没看懂…看了看别人的wp才知道这是个数独游戏(第一次接触这种题),这个是个5*5的数独游戏其中行和列都不能有重复的

14#23
30#1#
0#23#
#3##0
42##1

就是这个样子,不考虑中间那些函数,我们应该输入0421421430,输入以后不对,应该是中间的函数做了某些调换或者其他操作

然后,sub_400758,sub_400807里面都是递归函数,看不明白,又看网上的大佬wp发现可以用动调来判断他这个调换的位置,然后自己又重新设置了一遍ida的远程调试…

这里输入0123456789来方便判断他调换的位置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eBoGtGOL-1596277028428)(D:\markdown\文件\图片\7.9.5.png)]

在这个地方下断点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fxLLOW7y-1596277028428)(D:\markdown\文件\图片\7.9.6.png)]

修改z标志位使其可以执行下面的代码(因为输入的字符范围不对嘛)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6WjiDBHH-1596277028430)(D:\markdown\文件\图片\7.9.7.png)]

继续执行到第二个if

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h7YfE0jQ-1596277028431)(D:\markdown\文件\图片\7.9.8.png)]

双击v7查看v7(就是调换后的顺序)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RHQAa4Eh-1596277028431)(D:\markdown\文件\图片\7.9.9.png)]

得到这样一个对照表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E2SRhNZI-1596277028432)(D:\markdown\文件\图片\7.9.10.png)]

又之前输入后转变的是:0421421430

#include <stdio.h>
int main()
{
    char arr[] = { 48, 52, 50, 49, 52, 50, 49, 52, 51, 48,0 };
    int i,biao[] = { 7,3,8,1,9,4,0,5,2,6 };
    char input[11] = { 0 };
    for (i = 0; i < 10; i++)
        input[biao[i]] = arr[i];
    printf("flag{%s}", input);
    return 0;
}

得到flag为: flag{1134240024}

### BUUCTF Web 类型练习 #### 网站源码备份文件泄露和PHP反序列化 在BUUCTF平台上,有一道涉及网站源码备份文件泄露和PHP反序列化的目。这类目通常要求参赛者找到并利用服务器上存在的`.bak`或其他形式的备份文件来获取敏感信息或代码逻辑[^1]。 ```php // 示例:查找并读取备份文件 <?php $file = "backup_file.bak"; if (file_exists($file)) { echo file_get_contents($file); } ?> ``` #### Twig模板注入漏洞 另一个常见的Web安全问是模板引擎中的变量插值功能被滥用所引发的安全隐患。具体来说,在某些情况下,攻击者可以通过向HTTP请求中添加特定头部(如`X-Forwarded-For`),使得服务端渲染页面时执行恶意代码片段。例如: ```twig {{7*8}} ``` 这段代码会在页面加载过程中计算乘法表达式的值,并将其显示出来。如果应用程序允许用户输入影响此上下文的数据,则可能存在严重的安全隐患[^2]。 #### 文件包含漏洞 通过巧妙地构造命令字符串绕过过滤机制从而实现任意文件读取也是CTF竞赛中经常遇到的一种技巧。比如下面的例子展示了如何使用不同的方法去尝试访问名为`flag.php`的目标文件内容[^3]: ```bash # 方法一 cat<flag.php # 方法二 cat${IFS}flag.php # 方法三 cat$IFS$9flag.php ``` 这些技术不仅考验选手们对Linux Shell语法的理解程度,同时也考察他们能否灵活运用各种环境变量以及特殊字符组合达成目的。 #### 零基础入门学习路线 对于完全没有接触过网络安全领域的新手而言,可以从以下几个方面入手逐步建立起扎实的知识体系: - **基础知识积累**:掌握计算机网络原理、操作系统基本概念等必备理论; - **工具技能培养**:熟悉常用的渗透测试框架与自动化脚本编写能力; - **实践操作经验**:积极参与在线平台提供的各类挑战赛项目,不断巩固所学知识点; 综上所述,BUUCTF提供了一个很好的机会让爱好者们在一个相对友好且可控环境中锻炼自己的技术水平。无论是初学者还是有一定经验的人都能找到适合自己水平层次的任务来进行针对性训练[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值