sql注入时回显return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);

时间: 2023-11-08 10:05:18 浏览: 47
在SQL注入攻击中,攻击者会在输入框中输入一些恶意代码,以此来获取或篡改数据库中的数据。而回显信息是指攻击者在注入代码后,服务器返回的信息。在这个引用中,回显信息是通过preg_match()函数来检测关键字,如果检测到了select、update、delete、drop、insert、where或者.等关键字,就会被过滤掉,从而防止SQL注入攻击。但是,攻击者可以通过联合查询等方式来绕过这种过滤,从而实现注入攻击。
相关问题

我在做ctf练习题,注入?inject=1 union select 1,2,3时,回显:return preg_match("/select|update|delete|drop|insert|where|\./i",$inject);sql注入的题目,怎么解决

在处理SQL注入问题时,可以使用正则表达式来过滤用户输入的内容,以防止恶意注入。根据提供的引用内容,可以使用preg_replace函数来过滤用户输入的内容,将其中的关键字替换为空字符串。例如,可以使用以下代码来过滤用户输入的内容: ```php $username = preg_replace('/select|union|from|where|insert|update/','',$username); ``` 这样,如果用户输入的内容中包含了select、union、from、where、insert或update等关键字,这些关键字将被替换为空字符串,从而防止SQL注入的发生。 另外,根据第二个引用内容,你提到了一个具体的SQL注入练习题。在这个练习题中,你输入的参数inject的值是"1 union select 1,2,3"。根据引用内容,可以看出这个练习题中存在一个注入点,可以通过注入语句来获取数据库中的信息。 为了解决这个注入问题,可以使用预处理语句或者参数化查询来防止SQL注入。具体的解决方法取决于你使用的编程语言和数据库。下面是一个使用PHP和MySQL的示例代码,演示如何使用预处理语句来解决SQL注入问题: ```php $inject = $_GET['inject']; $stmt = $mysqli->prepare("SELECT * FROM table_name WHERE column_name = ?"); $stmt->bind_param("s", $inject); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { // 处理查询结果 } $stmt->close(); ``` 在这个示例中,我们使用了预处理语句和参数绑定来执行查询,确保用户输入的内容不会被解释为SQL语句的一部分,从而防止SQL注入的发生。

#!/bin/bash # Assets TEST_IMG=demo.png SDK_ROOT=$PWD TEST_ROOT=$PWD BIN_NAME=test_demo DEVICE_TEST_PATH=/data/local/tmp/ts_ai_sdk_test MODEL_PATH=/sdcard/models RUSULT=/data/local/tmp/ts_ai_sdk_test/results/ RUNTIME=DSP adb root # Push test assets adb shell rm -rf $DEVICE_TEST_PATH # adb shell rm -rf $MODEL_PATH adb shell mkdir -p $DEVICE_TEST_PATH/jpgs adb shell mkdir -p $DEVICE_TEST_PATH/results/post_result adb shell mkdir -p $DEVICE_TEST_PATH/results/img_result #adb shell mkdir -p $MODEL_PATH adb push images/* $DEVICE_TEST_PATH/jpgs # Push SNPE libraries adb push ${SDK_ROOT}/libs/ $DEVICE_TEST_PATH adb push ${SDK_ROOT}/models/model.exf $DEVICE_TEST_PATH/ # Push executable adb push build/$BIN_NAME $DEVICE_TEST_PATH # Test adb shell "chmod +x $DEVICE_TEST_PATH/$BIN_NAME" echo "Running on Android device ..." echo "LD_LIBRARY_PATH='$DEVICE_TEST_PATH/libs' $DEVICE_TEST_PATH/$BIN_NAME $DEVICE_TEST_PATH/jpgs $RUSULT $DEVICE_TEST_PATH/model.exf" echo "Done." adb shell "LD_LIBRARY_PATH='$DEVICE_TEST_PATH/libs' $DEVICE_TEST_PATH/$BIN_NAME $DEVICE_TEST_PATH/jpgs $RUSULT $DEVICE_TEST_PATH/model.exf" # Pull result adb pull $DEVICE_TEST_PATH/results/ . sleep 1改为bat脚本

将该脚本转换为 Windows 的 batch 脚本,需要进行以下修改: 1. 更改第一行为 `@echo off`,表示关闭命令回显。 2. 将变量的赋值方式从 `$变量名=值` 改为 `set 变量名=值`。 3. 将 `adb` 命令行中的路径分隔符 `/` 改为 Windows 下的路径分隔符 `\`。 4. 在执行命令行时需要使用 `call` 命令。 修改后的 batch 脚本如下: ``` @echo off REM Assets set TEST_IMG=demo.png set SDK_ROOT=%cd% set TEST_ROOT=%cd% set BIN_NAME=test_demo set DEVICE_TEST_PATH=/data/local/tmp/ts_ai_sdk_test set MODEL_PATH=/sdcard/models set RESULT=/data/local/tmp/ts_ai_sdk_test/results/ set RUNTIME=DSP REM Push test assets adb root adb shell rm -rf %DEVICE_TEST_PATH% adb shell mkdir -p %DEVICE_TEST_PATH%/jpgs adb shell mkdir -p %DEVICE_TEST_PATH%/results/post_result adb shell mkdir -p %DEVICE_TEST_PATH%/results/img_result adb push images\* %DEVICE_TEST_PATH%/jpgs REM Push SNPE libraries adb push %SDK_ROOT%\libs\ %DEVICE_TEST_PATH% adb push %SDK_ROOT%\models\model.exf %DEVICE_TEST_PATH%\ REM Push executable adb push build\%BIN_NAME% %DEVICE_TEST_PATH%\ REM Test adb shell "chmod +x %DEVICE_TEST_PATH%\%BIN_NAME%" echo Running on Android device ... echo "LD_LIBRARY_PATH='%DEVICE_TEST_PATH%\libs' %DEVICE_TEST_PATH%\%BIN_NAME% %DEVICE_TEST_PATH%/jpgs %RESULT% %DEVICE_TEST_PATH%/model.exf" echo Done. call adb shell "LD_LIBRARY_PATH='%DEVICE_TEST_PATH%\libs' %DEVICE_TEST_PATH%\%BIN_NAME% %DEVICE_TEST_PATH%/jpgs %RESULT% %DEVICE_TEST_PATH%\model.exf" REM Pull result adb pull %DEVICE_TEST_PATH%/results/ . timeout /t 1 ```

相关推荐

最新推荐

recommend-type

C#重定义的下拉多选控件,支持显示多列、单选/多选,文件中附有源码

自己封装的继承自C# Winform中ComboBox的下拉多选控件,操作简单,效果非常好。①,可设置允许单选或多选。②,可绑定List,DataTable,Dictionary,string>类型的数据源。③,在下拉列表中可显示自定义的多列数据。...
recommend-type

layui表格数据复选框回显设置方法

今天小编就为大家分享一篇layui表格数据复选框回显设置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
recommend-type

layui table数据修改的回显方法

其实回显就是一个赋值的操作,先把form表单的那些input 框的id拿到,在展示成功的那里进行绑值 table.on('tool(test)', function(obj) { var data = obj.data; // 获得当前行数据 var layEvent = obj.event; // ...
recommend-type

iceberg-flink-runtime-1.15-1.1.0.jar

iceberg-flink-runtime-1.15-1.1.0.jar
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB遗传算法自动优化指南:解放算法调优,提升效率

![MATLAB遗传算法自动优化指南:解放算法调优,提升效率](https://help-static-aliyun-doc.aliyuncs.com/assets/img/zh-CN/8487939061/p208348.png) # 1. MATLAB遗传算法概述** 遗传算法是一种受生物进化启发的优化算法,它模拟了自然选择和遗传的过程。在MATLAB中,遗传算法工具箱提供了丰富的函数和类,用于创建和运行遗传算法。 **1.1 遗传算法的基本原理** 遗传算法的工作原理如下: - **初始化:**创建由随机个体组成的初始种群。 - **评估:**根据目标函数计算每个个体的适应度。 -
recommend-type

failed to register layer: ApplyLayer exit status 1 stdout: stderr: archive/tar: invalid tar header

很抱歉听到这个问题。这个错误通常是由于Docker镜像损坏或Docker存储库中缺少所需的图层引起的。您可以尝试以下几种方法来解决这个问题: 1. 清理Docker镜像和容器:使用命令“docker system prune”清理不再使用的Docker对象。 2. 检查Docker存储库:确保您正在使用可靠的Docker存储库,并检查是否存在所有必需的图层。 3. 重新下载Docker镜像:如果您确定问题是由于损坏的Docker镜像引起的,则可以尝试重新下载Docker镜像。 4. 更新Docker版本:如果您使用的是旧版Docker,则可能会出现此问题。尝试更新到最新版本的Docke
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依