OWASP Top 10 2025: Application Design Flaws

AS02:Security Misconfigurations(安全配置错误)

Challenge
Navigate to . It appears that the developers left too many traces in their User Management APIs.10.144.160.94:5002
解题思路
我们去访问他所给的这个url,返回的是一个这样的界面:
image
题目要的是一个flag,直接访问url没返回flag,那我们就按他所说在后面加上/api/user/123试试:
image
返回的是这么一堆东西,什么email、id、name等信息,还是没有flag,到这里我就没思路了,AI一下,给我返回的都是这么些思路
image
我按照这些思路去尝试,都没有返回有flag的页面,最后我实在是没别的思路了就去看了答案,结果答案就是把最后一串ID改成非数字,返回的错误信息里面竟然就包含了flag,简直是逆了个大天。
image
正确访问的返回结果里面没有flag,反而藏在错误信息里面,这个思路也真是清奇!由于网上只告诉了答案而没有告诉答案是怎么来的,所以我后面又回去看了一下知识点,就发现了这个:
image
可能出题者就是想考一下我们的逆向思维吧,把flag隐藏在错误返回的信息里面,刚才上面的截图也说明了ID必须是数字,所以当我们输入非数字的时候,就返回了错误信息,flag也隐藏在里面。这也告诉我们现实网络错误信息也可能会泄露重要机密。

AS03:Software Supply Chain Failures(软件供应链故障)

Challenge
Navigate to . The code is outdated and imports an old component. Can you debug it?10.145.135.75:5003lib/vulnerable_utils.py
解题思路
题目给了一个python脚本作为附件,我们去AI一下可以得知这是一个web服务器代码,使用的是flask架构,代码里面很明显有一个vulnerable_utils,说明代码应该是有漏洞的,再往下看得知里面存在/api/process以及/api/health两个模块。然后我们再去访问web界面,也给我们返回了这两个模块,说明这个web页面使用的就是这个有漏洞的代码:
image
再观察代码,里面有这两行(24、25行):

if data == 'debug':
            return jsonify(debug_info())

AI告诉我们如果data参数等于debug,就会返回debug_info(),debug_info()里面可能就会有flag,那我们就试试吧,构造data=debug的post请求:

curl -X POST http://10.145.135.75:5003/api/process \
  -H "Content-Type: application/json" \
  -d '{"data": "debug"}'

image
果然就返回了flag!

AS04:Cryptographic Failures(密码学故障)

Challenge
Navigate to . Can you find the key to decrypt the file?10.145.135.75:5004
解题思路
访问一下url,返回以下界面:
image
Nzd42HZGgUIUlpILZRv0jeIXp1WtCErwR+j/w/lnKbmug31opX0BWy+pwK92rkhjwdf94mgHfLtF26X6B3pe2fhHXzIGnnvVruH7683KwvzZ6+QKybFWaedAEtknYkhe
这一串东西就是我们要解密的
看着没什么思路,AI一下,AI叫我们看源码,源码里面可能有解密用到的key,我们看一下源码,发现有一个,访问过去看一下,就找到了解密的key:

// Configuration
    const SECRET_KEY = "my-secret-key-16";
    const ENCRYPTION_MODE = "ECB";
    const KEY_SIZE = 128;

还得知他用的是ECB加密,拿着这个key去在线平台解密一下就得到答案啦!
image

AS06:Insecure Design(不安全设计)

Challenge
Navigate to . Have they assumed that only mobile devices can access it?10.144.130.12:5005
解题思路
这个题目也是很无语了。访问页面没有什么特别的地方,看了一下源码,也完全没有头绪,算了,还是问AI吧,AI说需要修改agent为移动端,可能就可以访问了。结合challenge里面说了他们是否认为只有移动端可以访问?我一开始真以为解题思路就是这样,所以我疯狂按照AI说的修改agent:

curl -L http://10.144.130.12:5005/ \
  -H "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1"
curl -L http://10.144.130.12:5005/ \
  -H "User-Agent: Mozilla/5.0 (Linux; Android 11; SM-G991B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.120 Mobile Safari/537.36"

然并卵,返回的源码还是一模一样的。
然后AI又说,flag通常在以下的路径中:

curl -s http://10.144.130.12:5005/robots.txt
curl -s http://10.144.130.12:5005/mobile
curl -s http://10.144.130.12:5005/app
curl -s http://10.144.130.12:5005/api/messages 这个跟答案就差一步了!
curl -s http://10.144.130.12:5005/admin
curl -s http://10.144.130.12:5005/flag
curl -s http://10.144.130.12:5005/.git/HEAD

我全都访问了一遍,还是都返回404。我实在没有思路了,就看了答案,答案用到了路径遍历工具gobuster,一点一点遍历路径,最终找到了flag的路径。好吧,这个解法我是完全没有想到的,题目误导性也很强,完全想不到是这样解的。复现一下:
image

posted @ 2026-09-11 08:23  Lazy__boy  阅读(9)  评论(0)    收藏  举报