• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >数据库其它 > SQL注入绕过的技巧总结

SQL注入绕过的技巧总结

作者:乘物游心 字体:[增加 减小] 来源:互联网 时间:2017-05-11

乘物游心通过本文主要向大家介绍了sql注入绕过,sql注入绕过安全狗,sql注入绕过waf,sql注入总结,sql注入实验总结等相关知识,希望本文的分享对您有所帮助

前言

sql注入在很早很早以前是很常见的一个漏洞。后来随着安全水平的提高,sql注入已经很少能够看到了。但是就在今天,还有很多网站带着sql注入漏洞在运行。稍微有点安全意识的朋友就应该懂得要做一下sql注入过滤。

SQL注入的绕过技巧有很多,具体的绕过技巧需要看具体的环境,而且很多的绕过方法需要有一个实际的环境,最好是你在渗透测试的过程中遇到的环境,否则如果仅仅是自己凭空想,那显然是不靠谱的。这篇文章就是总结我在遇到的CTF题目或者是渗透环境的过程中,所使用到的sql注入的绕过技巧,这篇文章随着自己的见识和能力不断的提升,所总结的方法也会变多。

一、引号绕过

会使用到引号的地方是在于最后的where子句中。如下面的一条sql语句,这条语句就是一个简单的用来查选得到users表中所有字段的一条语句。

select column_name from information_schema.tables where table_name="users"
</div>

这个时候如果引号被过滤了,那么上面的where子句就无法使用了。那么遇到这样的问题就要使用十六进制来处理这个问题了。
users的十六进制的字符串是7573657273。那么最后的sql语句就变为了:

select column_name from information_schema.tables where table_name=0x7573657273
</div>

小结:使用十六进制可以绕过引号

二、逗号绕过

在使用盲注的时候,需要使用到substr() ,mid() ,limit。这些子句方法都需要使用到逗号。对于substr()和mid()这两个方法可以使用from to的方式来解决。

select substr(database(0 from 1 for 1);
select mid(database(0 from 1 for 1);
</div>

对于limit可以使用offset来绕过。

select * from news limit 0,1
# 等价于下面这条SQL语句
select * from news limit 1 offset 0
</div>

小结:使用from可以绕过逗号

三、比较符(<,>)绕过

同样是在使用盲注的时候,在使用二分查找的时候需要使用到比较操作符来进行查找。如果无法使用比较操作符,那么就需要使用到greatest来进行绕过了。

最常见的一个盲注的sql语句。

select * from users where id=1 and ascii(substr(database(),0,1))>64
</div>

此时如果比较操作符被过滤,上面的盲注语句则无法使用,那么就可以使用greatest来代替比较操作符了。greatest(n1,n2,n3,等)函数返回输入参数(n1,n2,n3,等)的最大值。

那么上面的这条sql语句可以使用greatest变为如下的子句:

select * from users where id=1 and greatest(ascii(substr(database(),0,1)),64)=64
</div>

小结:使用greatest()绕过比较操作符。

总结

好了,以上就是关于SQL注入绕过技巧的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于SQL注入绕过的一些知识点
  • SQL注入绕过的技巧总结

相关文章

  • 2017-05-11SQL SERVER 与ACCESS、EXCEL的数据转换
  • 2017-05-11SQL中代替Like语句的另一种写法
  • 2017-05-118种主流NoSQL数据库系统特性对比和最佳应用场景
  • 2017-05-11数据库设计的折衷方法
  • 2017-05-11数据库的ACID特性术语详解
  • 2017-05-11数据库中删除语句Drop、Delete、Truncate的相同点和不同点的比较(实例说明)
  • 2017-05-11在telnet下操作memcache详解(操作命令详解)
  • 2017-05-11详细讲解PostgreSQL中的全文搜索的用法
  • 2017-05-11jdbc 数据库的连接(sqlserver oracle)
  • 2017-05-11ADO,OLEDB,ODBC,DAO,RDO的区别说明

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 详解SQLite中的查询规划器
    • Win2003系统安装SQL Sever2000后1433端口未开放的解释
    • SQL 随机查询 包括(sqlserver,mysql,access等)
    • MSSQL转MYSQL的一些记录
    • ACCESS转化成SQL2000需要注意的几个问题小结
    • 在PostgreSQL中实现递归查询的教程
    • HQL查询语言的使用介绍
    • sql server中datetime字段去除时间代码收藏
    • sql学习之CASE WHEN THEN ELSE END的用法
    • MYSQL 导入数据的几种不同

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有