CTFSHOW web入门 黑盒测试 web380-web384

目录

web380

web381

web382

web383

web384


web380

目录扫描下

python dirsearch.py -u https://ac87a5ae-d960-4072-ab8f-0e74e1ac6342.challenge.ctf.show/

扫描出来了两个文件

/flag.php

/page.php

依次访问看一下

/flag.php 什么都没有,是 0b

访问/page.php,返回报错信息,缺少了 id 参数

随便给 id 传一个值

id=1

根据返回信息能够知道,他是将 1 的后面拼接了一个.php 后缀,然后说是在这个路径下没有找到 1.php,联想到前面目录扫描出来的 flag.php,这里传入 flag

file_get_contents(1.php)

页面空白,查看源码,得到 flag

https://ac87a5ae-d960-4072-ab8f-0e74e1ac6342.challenge.ctf.show/page.php?id=flag

$flag='ctfshow{f12b4295-9fde-4dcb-97a1-cae2718284d2}';

web381

和上一题一样的界面

先目录扫描下

python dirsearch.py -u https://ecdd8908-42e3-471f-b00a-d06e29b8b35d.challenge.ctf.show/

扫描出了

/page.php

访问/page.php

返回了:打开page_$id.php失败

查看页面源代码,这里有一个可疑路径,前面两个都是 layui 开头,但是最后一个却是 alsckdfy 开头

/alsckdfy/layui/css/tree.css

访问/alsckdfy ,就能够得到 flag 了

ctfshow{ce1f22ea-fcf8-46d7-906f-ea84ea13088f}

web382

查看页面源代码,和上一题一样,这个可疑路径

"alsckdfy/layui/css/tree.css"

访问/alsckdfy

是一个登录框页面

https://c6f06760-decd-409c-a2a1-74f798044cf7.challenge.ctf.show/alsckdfy/

尝试弱口令

admin/123456

返回 error

对登录框进行爆破

用户名为 admin

密码是 admin888

ctfshow{1ac8dd9e-f932-4e21-a6f1-63d115c599d5}

另外一种方法

注入 sql 语句

用户名: admin 'or '1'='1'#

密码:1

得到 flag

它里面的代码应该是这样的:sql = "SELECT \* FROM users WHERE username = '_POSTu' AND password = '$_POSTp'";

将 admin 'or '1'='1'# 注入之后就会变成:SELECT * FROM users WHERE username = 'admin 'or '1'='1'#' AND password = '1'

#会把它后面的内容注释掉,最终语句就会变成:SELECT * FROM users WHERE username = 'admin 'or '1'='1',这个 SQL 语句的作用就会变成寻找 admin,或者 1=1,1=1 是肯定的,所以这个查询条件永远为真,他就会将数据库中第一行的所有数据查询出来,在绝大数的系统中,admin 都是系统初始化时创建的第一个超级管理员账户,所以这里是直接将 admin 的数据查询出来

ctfshow{1fee8024-c180-4115-9901-6e8dc61f537d}

web383

查看源代码,和上一题一样,还是有这个路径

alsckdfy/layui/css/tree.css

访问/alsckdfy

是一个登录框,和上一题一样,

直接使用 admin/admin888 进行登录发现能够直接得到 flag

ctfshow{63250502-c020-4e12-9780-173ebf05732d}

使用另外一种方法,SQL 注入,一样能够得到 flag,和 web382 没有区别

admin 'or '1'='1'#

1

ctfshow{63250502-c020-4e12-9780-173ebf05732d}

web384

题目提示:密码前2位是小写字母,后三位是数字

还是这个可疑路径

访问/alsckdfy

https://9633d6f1-98e4-41ca-b7ae-d4b3793bf854.challenge.ctf.show/alsckdfy/

登录框

结合题目的提示,应该是对登录框进行爆破的

写一个脚本,将题目提示:密码前2位是小写字母,后三位是数字,的密码组合,全都例举出来

复制代码
import itertools
import string

def generate_passwords():
    # 定义字符集
    letters = string.ascii_lowercase  # a-z (26个小写字母)
    digits = string.digits            # 0-9 (10个数字)
    
    # 输出的文件名
    output_file = "password_combinations.txt"
    
    print(f"开始生成密码,总计 676,000 种组合...")
    
    # 使用 itertools.product 生成笛卡尔积
    # 前2位是 letters,后3位是 digits
    combinations = itertools.product(letters, letters, digits, digits, digits)
    
    # 将结果写入文本文件
    with open(output_file, "w", encoding="utf-8") as file:
        for combo in combinations:
            # 将元组拼成字符串,例如 ('a', 'a', '0', '0', '0') -> "aa000"
            password = "".join(combo)
            file.write(password + "\n")
            
    print(f"生成完毕!所有组合已保存至:{output_file}")

if __name__ == "__main__":
    generate_passwords()

最终生成的效果是这样的

📎password_combinations.txt

输入 admin,Password

使用 bp 对登录框抓包

然后将抓取到的页面发送的 Intruder 模块中

使用狙击手模式,

添加 payload 位置,选取 密码 Password

到 payload 页面中,将生成好的密码本加载进去,然后开始攻击

爆破出来了

密码是:xy123

flag:ctfshow{0a48c115-b68f-4a4b-bf51-00b5d2b4c2a5}

相关推荐
kali-Myon1 天前
深入 MySQL 内核:从临时哈希表分配机制详解 Floor 报错注入核心原理
数据库·sql·mysql·安全·web
钛态3 天前
前端安全防线:CSRF 攻击链路与双重 Token 校验的工程实现
前端·vue·react·web
钛态3 天前
AI 组件生成评测:别只看页面能不能渲染
前端·vue·react·web
shuoshuohaohao6 天前
《HTTP协议》
java·web
湮w12 天前
JavaWeb(三)JavaScript详细讲解
java·javascript·web
还是鼠鼠13 天前
AI掘金头条新闻系统 (Toutiao News)-缓存相关推荐新闻
后端·python·mysql·fastapi·web
曲幽13 天前
从卡顿到丝滑:FastAPI 调用外部 API 的正确姿势(httpx 实战)
python·fastapi·web·async·httpx·client·await·requests·aiohttp
还是鼠鼠16 天前
AI掘金头条新闻系统 (Toutiao News)-缓存新闻详情
后端·python·mysql·fastapi·web
曲幽22 天前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
带刺的坐椅24 天前
Spring Boot → Solon 注解迁移实战指南:一张对照表说清楚
java·springboot·web·solon