sql注入中关于注释的一点探索

在sql-labs游戏中,经常使用--+放在最后注释多余部分,而mysql中的注释符为#-- 却不能直接使用,以前没学过mysql,一直不理解,也不知道+号的作用,今天有时间特地探索了一下,算是搞明白了其中的原因。

sql-labs闯关游戏资源及介绍见此:https://github.com/Audi-1/sqli-labs



第一关示例:

在源代码中加入下面两行,使网页能回显我们输入的有效输入和执行的mysql语句,方便分析:

第一关正常地址栏传参如下:

猜列数时的使用payload:

屏幕显示有效输入为:

这里尝试使用#号或者--

使用#号

发现执行的sql语句中没有#

原因是url中#号是用来指导浏览器动作的(例如锚点),对服务器端完全无用。所以,HTTP请求中不包括#

将#号改成url的编码%23就可以了

使用--

使用--+

对比上面--的效果,这里发现号在语句中变成了空格。用来和后面的单引号分隔开,将后面的语句注释。

了解原理后便知道了--无法使用的原因,是因为--与后面的单引号连接在一起,无法形成有效的mysql语句。

在mysql中使用这个语句分析原因,输入后回车显示分号没有闭合

所以在注入时我们可以使用--‘来完成sql语句

成功执行!

原文地址:https://www.cnblogs.com/laoxiajiadeyun/p/10274780.html

时间: 2024-07-31 13:35:49

sql注入中关于注释的一点探索的相关文章

sql语句中的注释符号

sql语句中的注释符号     mysql # 到该行结束.-- 到该行结束 以及 的注释方格:mysql> SELECT 1+1;     # 这个注释直到该行结束mysql> SELECT 1+1;     -- 这个注释直到该行结束mysql> SELECT 1 + 1;注意 -- (双长划) 注释风格要求在两个长划后至少有一个空格! oralce,mssql单行注释: --  多行注释:示例:select * from tb_name; --查xx表的记录明细select * f

【sql注入】浅谈sql注入中的Post注入

[sql注入]浅谈sql注入中的Post注入 本文来源:i春秋学院 00x01在许多交流群中,我看见很多朋友对于post注入很是迷茫,曾几何,我也是这样,因为我们都被复杂化了,想的太辅助了所以导致现在感觉到难,现在,就让我们一起来谈谈,post注入是多么的轻松吧!PS:文中有写os-shell00x02测试站点:http://xxx.xxxxx.com/对于我来说,post注入无非有两种方法第一种利用burp抓包然后使用sqlmap -r 来进行检测注入第二种比较简单,直接使用sqlmap --

COMMENT方法 用于在生成的SQL语句中添加注释内容,

COMMENT方法 用于在生成的SQL语句中添加注释内容,例如: $this->comment('查询考试前十名分数') ->field('username,score') ->limit(10) ->order('score desc') ->select(); 复制代码 大理石平台知识 最终生成的SQL语句是: SELECT username,score FROM think_score ORDER BY score desc LIMIT 10 /* 查询考试前十名分数

SQL注入中information_schema的作用

information_schema数据库是MySQL自带的,MySQL 5以下没有这个数据库,它提供了访问数据库元数据的方式.什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等.也就是说information_schema中保存着关于MySQL服务器所维护的所有其他数据库的信息.如数据库名,数据库的表,表栏的数据类型与访问权限等.在INFORMATION_SCHEMA中,有数个只读表. 在SQL注入中,我们重点关注的表有如下几个,因为主要的时候主要利用这几个表

SQL注入中的WAF绕过技术

1.大小写绕过 这个大家都很熟悉,对于一些太垃圾的WAF效果显著,比如拦截了union,那就使用Union UnIoN等等绕过. 2.简单编码绕过 比如WAF检测关键字,那么我们让他检测不到就可以了.比如检测union,那么我们就用%55也就是U的16进制编码来代替U,union写成 %55nION,结合大小写也可以绕过一些WAF,你可以随意替换一个或几个都可以. 也还有大家在Mysql注入中比如表名或是load文件的时候,会把文件名或是表明用16进制编码来绕过WAF都是属于这类. 3.注释绕过

SQL注入中的WAF绕过

1.大小写绕过 这个大家都很熟悉,对于一些太垃圾的WAF效果显著,比如拦截了union,那就使用Union UnIoN等等绕过. 2.简单编码绕过 比如WAF检测关键字,那么我们让他检测不到就可以了.比如检测union,那么我们就用%55也就是U的16进制编码来代替U,union写成 %55nION,结合大小写也可以绕过一些WAF,你可以随意替换一个或几个都可以. 也还有大家在Mysql注入中比如表名或是load文件的时候,会把文件名或是表明用16进制编码来绕过WAF都是属于这类. 3.注释绕过

Swift Explore - 关于 Swift 中的 isEqual 的一点探索

在我们进行 App 开发的时候,经常会用到的一个操作就是判断两个对象是否相等.比如两个字符串是否相等.而所谓的 相等 有着两层含义.一个是值相等,还有一个是引用相等.如果熟悉 Objective-C 开发的话,就会知道 Objective-C 为我们提供了一系列 isEqual: 方法来判断值相等,而 == 等于号用来判断引用相等. 我们来看一个 Objective-C 的例子就会更加明白了: NSArray *arr1 = @[@"cat",@"hat",@&qu

互联网研发中负载均衡算法一点探索

负载均衡在线上服务中有着很重要作用,因为一台web服务比如tomcat,能够处理qps(每秒处理请求数) 是有限的.那么就需要有有前端负载均衡服务将大的流量分发为多个后端服务进行处理. 负载均衡产品有硬件F5.有软件,早之前使用Apache较多,目前是使用Nginx多,Nginx架构实现简洁优 雅性能高.LVS.HAProxy是著名软负载工具.说到LVS是由原淘宝章文蒿(目前在滴滴公司)博士领导开发, 是到目前为止Linux内核中网络核心部分,也是国人开Linux内核最高贡献,章博士在国内技术圈

浅析白盒审计中的字符编码及SQL注入

尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如gbk,作为自己默认的编码类型.也有一些cms为了考虑老用户,所以出了gbk和utf-8两个版本. 我们就以gbk字符编码为示范,拉开帷幕.gbk是一种多字符编码,具体定义自行百度.但有一个地方尤其要注意: 通常来说,一个gbk编码汉字,占用2个字节.一个utf-8编码的汉字,占用3个字节.在php中